CentOS7中默认有MariaDB,MySQL需要自己去下载
一、去MySQL官网获取rpm包下载链接
官网地址:https://dev.mysql.com/downloads/repo/yum/
二、下载MySQL RPM包,并安装
1、用上述地址下载包
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
或者直接点击上述链接,下载到本地,再上传到服务器上
2、安装Mysql源
yum -y install mysql80-community-release-el7-1.noarch.rpm
3、安装MySQL
yum -y install mysql-community-server
(基于el8的系统,比如centos8需要在这之前先执行:yum module disable mysql)
到这里MySQL就安装好了,接下来需要一些配置
三、启动MySQL,设置初始密码
1、启动MySQL:systemctl start mysqld.service
2、找初始密码
因为MySQL5.7后设有初始密码,所以我们需要先把初始密码找到。
密码存放在 /var/log/mysqld.log 中,cat /var/log/mysqld.log
或者直接搜索: grep "password" /var/log/mysqld.log 也可以得到
3、登陆MySQL
mysql -uroot -p
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password' ;
到此我们可以操作数据库了,但还不能远程连接数据库!!!
四、远程连接配置
登录MySQL,选择mysql数据库
use mysql;
select host, user, authentication_string, plugin from user;
查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。
将它更新为%,% 表示通配所有 host,可以访问远程
update user set host='%' where user='root';
更新完,刷新权限
flush privileges;
最后我们用低版本的Navicat、SQLyog等访问时,还是会报错。
错误号码 2058:Plugin caching_sha2_password could not be loaded
解决方法:1、换成高版本的客户端。2、修改mysql加密规则
mysql8.0 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,步骤如下:
1、设置密码不过期(默认就是不过期)
ALTER USER 'root'@'%' PASSWORD EXPIRE NEVER;
2、修改密码并指定加密规则为mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
3、 flush privileges;
终于可以连接上MySQL了,恭喜!!!