1、安装 MySQL
1、下图是需要安装的 rpm
2、切换目录到安装目录,我选择的是 /home/
目录,进行安装(注意先后次序,不然可能会报错)
- 安装
mysql-community-common-8.0.11-1.el7.x86_64.rpm
(一般不会报错)
[root@VM-0-16-centos home]# rpm -ivh ./resources/mysql8/mysql-community-common-8.0.11-1.el7.x86_64.rpm
warning: ./resources/mysql8/mysql-community-common-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-common-8.0.11-1.e################################# [100%]
- 安装
mysql-community-libs-8.0.11-1.el7.x86_64.rpm
(如果已经存在依赖,会报错)
报错问题
[root@VM-0-16-centos home]# rpm -ivh ./resources/mysql8/mysql-community-libs-8.0.11-1.el7.x86_64.rpm
warning: ./resources/mysql8/mysql-community-libs-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
mariadb-libs is obsoleted by mysql-community-libs-8.0.11-1.el7.x86_64
解决办法
运行 yum remove mysql-libs
,清除之前安装过的依赖,再次安装即可。
[root@VM-0-16-centos home]# rpm -ivh ./resources/mysql8/mysql-community-libs-8.0.11-1.el7.x86_64.rpm
warning: ./resources/mysql8/mysql-community-libs-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-libs-8.0.11-1.el7################################# [100%]
- 安装
mysql-community-client-8.0.11-1.el7.x86_64.rpm
(一般不会报错)
[root@VM-0-16-centos home]# rpm -ivh ./resources/mysql8/mysql-community-client-8.0.11-1.el7.x86_64.rpm
warning: ./resources/mysql8/mysql-community-client-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-client-8.0.11-1.e################################# [100%]
- 安装
mysql-community-server-8.0.11-1.el7.x86_64.rpm
(直接安装一般会出错)
报错问题
[root@VM-0-16-centos home]# rpm -ivh ./resources/mysql8/mysql-community-server-8.0.11-1.el7.x86_64.rpm
warning: ./resources/mysql8/mysql-community-server-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libnuma.so.1()(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64
解决办法
运行 yum install numactl
,再次安装即可。
[root@VM-0-16-centos home]# rpm -ivh ./resources/mysql8/mysql-community-server-8.0.11-1.el7.x86_64.rpm
warning: ./resources/mysql8/mysql-community-server-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-server-8.0.11-1.e################################# [100%]
3、启动 MySQL 并查看状态
4、登陆 MySQL
MySQL 启动以后,用户可以从终端登录系统。但是,首次登录需要获取自动生成的临时密码,命令是:sudo grep 'temporary password' /var/log/mysqld.log
得到登录密码之后,即可使用该密码登录 MySQL 客户端了。登录命令是 mysql -u root -p
,回车后输入临时密码,即可完成登录
注意,首次登录 MySQL后,需要修改临时密码才能开始创建数据库之类的工作,否则将被拒绝。
修改密码的命令是:
alter user 'root'@'localhost' identified by '你的复杂密码'
5、远程登陆配置
- 将
host
字段的值改为%
就表示在任何客户端机器上能以root
用户登录到MySQL
服务器,建议在开发时设为%
:update user set host = '%' where user = 'root';
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.10 sec)
Rows matched: 1 Changed: 1 Warnings: 0
- 将权限改为 ALL PRIVILEGES
报错问题:密码不安全(其中 password 为你自己的密码)
解决办法
运行 SHOW VARIABLES LIKE 'validate_password%';
命令,查看密码验证强度
降低密码强度,运行 set global validate_password.policy=LOW;
再次执行即可成功(马赛克为你自己设置的密码)
执行 FLUSH PRIVILEGES;
刷新权限
- Navicat 报错问题
输入访问的 host 和密码,报 2059 错误,这是因为 MySQL8.0 和 5.7 的加密规则不一样,现在的可视化工具只支持旧的加密方式。
原因是: MySQL8.0 之前的版本中加密规则是 mysql_native_password
,而在 MySQL8.0 之后,加密规则是 caching_sha2_password
。
解决方法:有两种,一种是升级 Navicat 驱动,一种是把 MySQL 用户登录密码加密规则还原成 mysql_native_password
。
这里选择修改 MySQL 用户登陆加密规则。
6、创建用户
create user 'yourname'@'%' identified by '123456';
再进行授权
grant all privileges on *.* to 'yourname'@'%' with grant option;