购买了台阿里的ECS,结果安mysql安了天,总算是解决了。网上的教程都是通过 apt 安装,但阿里的源默认只有8.0版本,通过换源可以解决。
一、卸载
# 卸载mysql:
sudo apt-get autoremove mysql* --purge
sudo apt-get remove mysql-server
sudo apt-get remove mysql-common
# 清理残留数据
sudo dpkg -l |grep mysql|awk '{print $2}' |sudo xargs dpkg -P
sudo rm -rf /etc/mysql/
sudo rm -rf /var/lib/mysql
# 检查是否删除完毕
whereis mysql
sudo find / -name mysql
二、换源
清华的源支持5.7,所以更换后可以直接安装。
2.1备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
2.2修改
sudo vim /etc/apt/sources.list
替换成
# 清华镜像源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
更新一下
sudo apt update
sudo apt upgrade
2.3测试
查询软件列表
apt search mysql-*

result.png
可以看到已经有了mysql5.7
三、安装
sudo apt install mysql-server-5.7
输入两次root 密码,接着的选项输 y
sudo apt install mysql-client-5.7
安装后
mysql -V #查看版本
安装完成

image.png
设置为不更新,否则apt update时可能自动升级成8.0(我第一次就是这么被坑的),需要更新时可以 unhold 解除
sudo apt-mark hold mysql-*
四、通过Navicat远程连接
4.1创建用于远程登录的用户
#登录 mysql
mysql -uroot -p
#如果忘记密码的话可以重新修改密码
mysql>update mysql.user set authentication_string=password('1234') where user='root';
#改变数据库
mysql> use mysql
#查看用户信息
mysql> select user,host,plugin,authentication_string from user;
#创建一个zeal用户用于远程登录
mysql> create user 'zeal'@'localhost' identified by 'password';
#给zeal用户赋权
mysql> grant all privileges on *.* to 'test'@'localhost' with grant option;
#允许用户远程访问
mysql>update user set host='%' where user= 'root';
#更新一下cache配置,刷新权限
mysql>flush privileges;
#退出
mysql>quit;
重启mysql服务
service mysql restart
4.2Navicat连接
Navicat新建mysql连接,主机填服务器ip地址,测试连接。

navicat.png
完成!
五、可能出现的问题
连接mysql报错 1045 可能是因为msyql用户权限设置错误,localhost用于本地连接,% 用于远程连接,重新设置下权限。
如果想通过root用户登录mysql也可以将mysql的host更新为%
参考:
Ubuntu 20.04上安装和配置MySql5.7_Stick·连翼的博客-CSDN博客
Ubuntu20.04安装Mysql_風の住む街~的博客-CSDN博客_ubuntu20.04安装mysql