1、下载并安装MySQL
wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
下载到指定位置后,就可以执行安装了
yum -y install mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql-community-server
安装完成后,之前的MariaDB就会被覆盖掉

2、启动MySQL
启动MySQL服务:systemctl start mysqld.service
查看MySQL服务:systemctl status mysqld.service

查看MySQL是不是开机自启,可以执行命令查看开机自启列表
1systemctl list-unit-files|grep enabled
此时如果要进入MySQL得找出root用户的密码,输入命令
grep "password" /var/log/mysqld.log

得到密码后,登录mysql,输入命令
mysql -uroot -p
然后回车,提示你输入密码,记得不要输错,输入时密码是不显示的。登录成功如下图

此时,你需要给你的MySql重新设置密码,因为MySQL默认的就是必须修改密码后才能操作数据库。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'lh@hy123.';
设置密码的时候需要遵守MySQL密码设置规范,如果不符合规范是不能修改成功的。
如下图,我将密码设置为123456,它提示我 密码不符合规范

总之呢,我们先将密码设置成比较复杂的就好,比如 Abc@123...,先登录了再说。
如果想要设置简单好记的密码,可以修改密码设置规范,毕竟你不登录你就不能修改规范。
查看密码规范
SHOW VARIABLES LIKE 'validate_password%';

密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
这时候我们将密码设置规范修改一下:
set global validate_password.policy=0;
set global validate_password.length=1;
这时候就可以设置简单的密码了,比如123456

最后一步,设置允许远程连接。
如果直接使用命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'; 会提示一个语法错误,有人说是mysql8的分配权限不能带密码隐士创建账号了,要先创建账号再设置权限。也有的说8.0.11之后移除了grant 添加用户的功能。
创建新用户 admin
创建用户:CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
允许远程连接:GRANT ALL ON *.* TO 'admin'@'%';
本人测试过,使用 update user set host = '%' where user = 'root'; 也可以修改

如果使用客户端连接提示了plugin caching_sha2_password错误,这是因为MySQL8.0的密码策略默认为caching_sha2_password
使用命令修改策略
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
箭头指的两个用户是我修改过的

然后关闭防火墙,测试连接成功!!
网友评论