据 db-engines.com 于2019 年9月发布的数据库排行榜,MySQL 牢牢的霸占兵器排行榜第 2 位。
不说远的,近来我遇到的各类搭建大小数据集群,都已经全部用 MySQL 来当“胶水”了,比如 Hive 的 MetaData Store, 就是建立在 MySQL 之中的。
与其纠结,挑 Oracle,还是 MySQL, 或者 SQL Server 还不如选定一个,立马开干。RDMBS(关系型数据库)原理都一样,详看我之前翻译的 IBM 关系型数据库论文,学完一门其他非常好上手:
带读 IBM 关系型数据库经典论文
不废话,我画了个脑图,打算接下来的时间,好好写一写 MySQL.
这是开头三个小时的知识点,希望对大家有帮助。
先从安装入手,这是初学者最头痛的事情了,因为不仅仅要安装 MySQL, 还要熟悉一些 Linux 的基本操作。但万事开头难,一步步跟着我这个小课来,你会发现困难就是只大病猫。
安装篇
1. 安装vmware centos的虚拟机
-省却安装vmware虚拟机管理的部分(谷歌、百度是好东西)
-centos7下载地址:
官方:
https://www.centos.org/download/
镜像文件地址:
http://mirrors.nju.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
2. 配置一台centos服务器的用户、密码以及权限
-centos安装名称:MySQLAAS
-centos安装路径:D:mMySQL
-Root/密码:*****.
-MySQL服务专用账户 MySQLAdmin/*****
3. 安装 MySQL 8
3.1 下载路径: 选择 MySQL Community 8.0 版本, 下载地址:
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar
3.2 安装:
1)解压tar文件:tar -xf
2)按照以下顺序安装这些包:
mysql-community-server
mysql-community-client
mysql-community-libs
mysql-community-common
mysql-community-libs-compact
以上这些包是确保一个MySQL数据库服务正常运作的必要包。
代码语言:javascript复制>sudo yum install mysql-community-{server,client,common,libs}-*
3)配置
一般来说,直接运行上面的yum命令后,安装程序会在系统的各个主要目录下生成这些MySQL运行必须的文件:
Files or Resources | Location |
---|---|
Client programs and scripts | /usr/bin |
mysqld server | /usr/sbin |
Configuration file | /etc/my.cnf |
Data directory | /var/lib/mysql |
Error log file | For RHEL, Oracle Linux, CentOS or Fedora platforms:/var/log/mysqld.logFor SLES: /var/log/mysql/mysqld.log |
Value of secure_file_priv | /var/lib/mysql-files |
System V init script | For RHEL, Oracle Linux, CentOS or Fedora platforms: /etc/init.d/mysqldFor SLES: /etc/init.d/mysql |
Systemd service | For RHEL, Oracle Linux, CentOS or Fedora platforms: mysqldFor SLES: mysql |
Pid file | /var/run/mysql/mysqld.pid |
Socket | /var/lib/mysql/mysql.sock |
Keyring directory | /var/lib/mysql-keyring |
Unix manual pages | /usr/share/man |
Include (header) files | /usr/include/mysql |
Libraries | /usr/lib/mysql |
Miscellaneous support files (for example, error messages, and character set files) | /usr/share/mysql |
4)安装完毕之后的注意事项
-默认安装完毕 MySQL,数据库服务并不会自动启动,我们必须手动开启服务
代码语言:javascript复制>systemctl start mysqld
-root用户密码是随机生成的,我们需要捕获这份密码,并修改成我们自己熟记的
代码语言:javascript复制[mysqladmin@SQLAAS Downloads]$ sudo grep 'temporary password' /var/log/mysqld.log
2019-09-01T15:35:49.811164Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: HJu2(khHtCG0
mysql> alter user 'root'@'localhost' identified by '1QAZ2WSX' ;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql>
mysql> alter user 'root'@'localhost' identified by 'LuckyNumber234.' ;
Query OK, 0 rows affected (0.01 sec)
-添加一个 MySQL 用户,使其拥有创建数据库的权限
MySQLAdmin/****.
代码语言:javascript复制 >create user 'MySQLAdmin'@'localhost' identified by 'MySQLAdmin' ;
-配置远程登录允许:这里有坑,要当心
代码语言:javascript复制>grants all on *.* 'root' ;
>ERROR 1410 (42000): You are not allowed to create a user with GRANT
加上 privileges 关键字:
> grant all privileges on *.* to 'root'@'%' ;
ERROR 1410 (42000): You are not allowed to create a user with GRANT
MySQL 8 中新建一个远程账户,必须从create user 开始:
mysql> create user 'MySQLAdmin'@'%' identified by '*******.' ;
Query OK, 0 rows affected (0.05 sec)
mysql> grant all on *.* to 'MySQLAdmin'@'%' ;
Query OK, 0 rows affected (0.05 sec)
mysql> flush privileges ;
Query OK, 0 rows affected (0.03 sec)
最终,完美地从远程连接到了 MySQL 8 上。
代码语言:javascript复制