Centos7安装mysql8.0需要注意的问题

从CentOS 7.0发布以来,yum源中开始使用Mariadb来代替MySQL的安装。即使你输入的是yum install -y mysql , 显示的也是Mariadb的安装内容。
使用源代码进行编译安装又太麻烦。因此,如果想使用yum安装MySQL的话,就需要去下载官方指定的yum源.
 yum下载网址为:https://dev.mysql.com/downloads/repo/yum/

1、mysql8.0的安装
1.1 安装MySQL YUM资源库
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
1.2 安装MySQL8.0
# yum install -y mysql-community-server
1.3 启动MySQL服务器和MySQL的自动启动
# systemctl start mysqld.service
# systemctl enable mysqld.service

2、密码问题
2.1 查看mysql初始化密码
由于MySQL从5.7开始不允许首次安装后使用空密码进行登录!为了加强安全性,系统会随机生成一个密码以供管理员首次登录使用,这个密码记录在/var/log/mysqld.log文件中,使用下面的命令可以查看此密码:

# cat /var/log/mysqld.log |grep “temporary password”
2018-09-19T03:00:29.375848Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: s?ei_;lOa5CV
我们可以看到root的初始密码为s?ei_;lOa5CV

2.2 修改mysql管理员密码
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
必须要修改初始root密码才能继续使用
# mysqladmin -u root -p password "lcyyang100.Aa"
输入初始root密码
# mysql -u root -p
输入新密码登入mysql
登入之后,可以通过alter指令来修改密码
mysql> alter user 'root'@'localhost' identified by 'lcyyang100.Aa';
Query OK, 0 rows affected (0.12 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

2.3 MYSQL8.0 密码策略
在上面设置mysql密码的时候, 密码要求符合复杂性要求,否则设置不上
密码必须含有数字,小写或大写字母,特殊字符,长度至少8位,才生效。
查看默认的MYSQL密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.00 sec)
密码策略调整
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password.length=4;
Query OK, 0 rows affected (0.00 sec)

现在给root密码设置成简单的1234
mysql> ALTER USER "root"@"localhost" IDENTIFIED BY "1234";
Query OK, 0 rows affected (0.12 sec)
设置成功
注意: 当重启mysql服务后,密码策略又变成默认的强密码策略了,这个设置是临时生效。通过这个方法已经修改成功过用户密码不受默认策略影响。
(3)、 MYSQL8.0 远程访问数据库
使用 Navicat软件远程连接mysql8.0数据库
会提示如图所示的 Navicat 1130 错误
Centos7安装mysql8.0需要注意的问题
原因是mysql的root用户的验证方式变了。可以从图下看出root的用户的加密方式为caching_sha2_passoword,而navicat连接所用的方式为native_password。mysql为远程连接和本地连接提供了不同的密码验证方式。
Centos7安装mysql8.0需要注意的问题
解决办法:
1.添加一条 root@’%’ 记录到user表,并设置其密码验证方式为mysql_native_password
具体设置指令如下图所示
Centos7安装mysql8.0需要注意的问题
设置成功之后,执行 flush privileges刷新下权限表
测试,发现远程可以通过navicat 来连接上数据库,由于没有对root@‘%’进行授权,所以只能看到一个 information_schema数据库。

information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式。就像是MySQL实例的一个百科全书,记录了数据库当中大部分我们需要了解的信息,比如字符集,权限相关,数据库实体对象信息,外检约束,分区,压缩表,表信息,索引信息,参数,优化,锁和事物等等。通过information_schema我们可以窥透整个MySQL实例的运行情况,可以了解MySQL实例的基本信息,甚至优化调优,维护数据库等。

1. Mysql 授权
Centos7安装mysql8.0需要注意的问题
Centos7安装mysql8.0需要注意的问题
(3) 、 数据库编码问题
mysql> show variables like "%character%";show variables like "%collation%";
MYSQL8.0 默认编码格式是 utf8mb4
Centos7安装mysql8.0需要注意的问题
调整MYSQL数据库编码,由utf8mb4 变更为 utf8
# vi /etc/my.cnf
[mysqld]
character-set-server=utf8             
[client]
default-character-set=utf8
更改好了my.cnf配置文件后,重新启动mysql服务
# systemctl restart mysqld.service
# mysql -u root -p
登入mysql查看下 ,发现已经改过来了
mysql> show variables like "%character%";show variables like "%collation%";
Centos7安装mysql8.0需要注意的问题

相关新闻

联系我们

全国服务热线

400-033-9553

电子邮件:admin@example.com
工作时间:09:00-17:00 周一至周五

在线客服
关注微信
关注微信
分享本页
返回顶部