CentOS7安装mysql8
-
先去官网下载mysql的repo源并安装,下载地址如下:
地址:https://dev.mysql.com/downloads/ 下载: wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm 安装: rpm -ivh mysql57-community-release-el7-11.noarch.rpm 建立缓存: yum clean all yum makecache
-
安装MySQL
第一步: 查看yum仓库中mysql版本
yum repolist all | grep mysql
接下来可以看到 MySQL 5.*为禁用状态,而MySQL 8.0为启用状态;
第二步:使用 yum-config-manager 命令修改相应的版本为启用状态,默认为最新版本,根据需要安装的版本进行修改。(安装mysql8直接忽略此步)
yum-config-manager --disable mysql80-community #关闭8.0版本 yum-config-manager --enable mysql57-community #开启5.7版本
或者直接打开编辑器修改repo文件,将相应版本下的enabled改成 1 即可。
cat /etc/yum.repos.d/mysql-community.repo
第三步:安装mysql, 命令如下:
yum install mysql-community-server
开启mysql 服务
systemctl start mysqld
第四步:获取初始密码登录mysql
mysql在安装后会创建一个[email protected]账户,并且把初始的密码放到了/var/log/mysqld.log文件中,查看密码:
cat /var/log/mysqld.log | grep password
使用初始密码登录mysql
mysql -u root -p #会提示输入密码,输入log中的密码。
修改初始密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Abc_1234';
#注意位数和种类至少大写+小写+符号+数字
########################以下设置可自主选择#######################
修改MySQL密码设置查看当前的密码验证策略,输入:
SHOW VARIABLES LIKE 'validate_password%'; #策略说明
validate_password.length 是密码的最小长度,默认是8,比如我们把它改成6,输入:
set global validate_password.length=6;
validate_password.policy 验证密码的复杂程度,我们把它改成0,输入:
set global validate_password.policy=0;
validate_password.check_user_name 用户名检查,开通此项会导致用户名和密码不能设置相同,关掉输入:
set global validate_password.check_user_name=off;
再次执行修改密码的命令,输入:
alter user 'root'@'localhost' identified by '123456';
密码修改成功,此时如果用mysql客户连接会报不允许连接的错误,那是因为没有远程访问的权限
配置远程访问
查看MySQL默认用户:
输入:use mysql;
输入:select host, user, authentication_string, plugin from user;
此时root的host是localhost,不是%,将localhost改为%:update user set host='%' where user='root';
再次查看:
select host, user, authentication_string, plugin from user;
客户端连接mysql报错
原因是mysql8的加密方式规则不一样,是caching_sha2_password
,需要加密方式改成mysql_native_password
就行了
语法:ALTER USER ‘[用户名]’@’%’ IDENTIFIED WITH mysql_native_password BY ‘[密码]’;
输入:alter user 'root'@'%' identified with mysql_native_password by '123456';
加密方式就改成了mysql_native_password。如果客户端连接mysql还报错
查看防火墙状态,关闭防火墙,或者开放3306端口。