MySQL数据库更新到8.0后性能大幅提升,并且加入了很多的高级特性。
本教程安装环境:CentOS 7,MySQL8.0
首先到官网获取最新的RPM安装文件,可以看到上面有很多的版本,我们选择Linux 7 就好了,如果你是CentOS 8那么就选择8
官网地址:https://dev.mysql.com/downloads/repo/yum/
然后用wget获取资源
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
在安装之前需要将Yum设为国内的服务器,这样安装起来速度就会比较快
# 备份系统自带的配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载aliyun的yum配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 生成缓存
yum makecache
# 更新yum
yum update
安装刚才下载的MySQL源,注意文件版本不同,后面的文件也不一样
rpm -vih mysql80-community-release-el7-3.noarch.rpm
安装完成后检查是否正常安装
yum repolist enabled | grep "mysql.*-community.*"
出现上面信息那么就好了
直接使用下面语句就好了,其它版本也是这句
yum install mysql-community-server
后面会提示下载信息,输入y回车就好了。
MySQL8.0安装后还需要进行一些配置才能够被外网连接与使用
开启MySQL服务器
systemctl start mysqld
查看MySQL服务器
systemctl status mysqld
设置开机启动
systemctl enable mysqld
systemctl daemon-reload
查看登录密码
grep 'temporary password' /var/log/mysqld.log
使用MySQL客户端和刚才查看的临时密码,连接MySQL服务器
mysql -u root -p
在连接到MySQL8.0服务器后,系统强制要求需要更改密码。
alter user 'root'@'localhost' identified by '[email protected]';
修改完密码后我们可以使用下面语句查看密码的复杂度
show variables like '%password%';
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password.length:密码最少长度
validate_password.mixed_case_count:大小写字符长度,至少1个
validate_password.number_count :数字至少1个
validate_password.special_char_count:特殊字符至少1个
上述参数是默认策略MEDIUM的密码检查规则。
修改密码策略:
在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略:
选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件。
通过语句修改密码策略,例如:设置密码中不需要特殊字符
set global validate_password.special_char_count = 0;
当然,如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可,这需要重新启动服务器
validate_password = off
当我们设置完密码后,就需要连接了,大家都知道在Windows上安装的MySQL服务器也是需要设置远程访问的权限才能通过IP地址访问,在Linux上的MySQL服务器是一样的道理。
#切换数据库
use mysql;
#授予权限
update user set host='%' where user ='root';
#让修改的参数生效
flush privileges;
配置后需要设置密码的编码格式
完成上面的配置使用sqlyog链接时会出现2058的异常,此时我们需要修改mysql,命令行登录mysql(与修改密码中登录相同,使用修改后的密码),然后执行下面的命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
如果报错:ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'则使用下面命令:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';