1 操作环境:
macOS10.12.6、Yummy FTP Pro1.11.14、阿里云服务器一台(Centos7)、Navicat Premium12.0.23
注:以下全部命令基本上可直接点复制,粘到Centos终端中去。
2 看是否有mysql服务,有则停掉
先查看一下mysql进程和状态:
ps -ef | grep mysql
systemctl status mysqld
此时mysql是启动着的,我们要把mysql停掉
service mysqld stop
再查看一下mysql进程和状态:
ps -ef | grep mysql
systemctl status mysqld
此时mysql进程已经停掉了。但为什么每次ps -ef | grep mysql都会出现grep --color=auto mysql的结果,因为grep本身也是一个进程,ps会将grep进程的信息也显示出来。
3 删除旧版MySQL
首先查看mysql的安装情况
rpm -qa|grep -i mysql
可能显示:
删除mysql包:
rpm -ev mysql-community-client-8.0.21-1.el7.x86_64 --nodeps
rpm -ev mysql-community-libs-8.0.21-1.el7.x86_64 --nodeps
rpm -ev mysql-community-common-8.0.21-1.el7.x86_64 --nodeps
rpm -ev mysql80-community-release-el7-3.noarch --nodeps
rpm -ev mysql-community-server-8.0.21-1.el7.x86_64 --nodeps
再次查看,确保没有了
rpm -qa|grep -i mysql
再查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
find / -name mysql
删除老版本mysql的文件和库,并重新查找一下mysql的库和文件
rm -rf /usr/lib64/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
find / -name mysql
什么都没有了
4 安装MySQL
# 下载mysql仓库
wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
# 安装mysql仓库
yum -y install mysql80-community-release-el7-3.noarch.rpm
# 查看可以安装的版本
yum list | grep mysql | grep server
mysql-community-server.x86_64 8.0.21-1.el7 mysql80-community
# 安装 MySQL
yum -y install mysql-community-server
安装完成!
5 启动MySQL
# 启动MySQL
systemctl restart mysqld
# 查看状态
systemctl status mysqld
6 修改mysql密码
查看mysql默认密码,默认在/var/log/mysqld.log
grep password /var/log/mysqld.log
复制上面的密码,先登录进去
mysql -u root -p
再修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
flush privileges;
注意:mysql8.0.21版本的密码默认要8位,并且是数字、大小写字母、特殊符号组成。
退出一下,用新密码登录试试
修改成功!现在还不行,mysql默认不允许远程连接,设置远程连接,方便接下来用Navicat连接
use mysql;
update user set host = '%' where user ='root';
flush privileges;
mysql安装完成
7 Navicat远程连接mysql
这里需要开放两个端口,Linux一个,阿里云服务器一个
Linux开放3306端口,先查看一下防火墙状态
systemctl status firewalld
Active为dead表示未开启,开启防火墙
systemctl start firewalld
有需要则可以设置防火墙开机自动启动
systemctl enable firewalld
有需要则可以禁止防火墙开机自动启动
systemctl disable firewalld
开启防火墙后,再次查看一下防火墙状态
systemctl status firewalld
现在还不行,还没有开放3306端口号,开放端口并重启防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
提示success表示成功
去到阿里云服务器开放3306端口
输入3306
用Navicat远程连接mysql,可能遇到的问题2059 - Authentication plugin ‘caching_sha2_password’ cannot be loaded: dlopen(…/Frameworks/caching_sha2_password.so, 2): image not found
在mysql服务器上修改一下
mysql -u root -p;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
flush privileges;
Navicat远程连接
搞定!