yum 安装Mysql8.0

系统: CentOS 7(在CentOS 7中默认有安装MariaDB,这个是mysql的分支,一般来说还是使用自己安装的MySQL比较好)

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是不是开机自启,可以执行命令查看开机自启列表

systemctl 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 'Left@zuo123.';

设置密码的时候需要遵守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'; 

箭头指的两个用户是我修改过的

 然后关闭防火墙,测试连接成功!!

文章为学习记录,如有错误,还望指出!!

posted @ 2019-04-26 10:32  张左左  阅读(25505)  评论(0编辑  收藏  举报