Ubuntu20默认的安装的MySQL数据库是8.0的 所以不能使用apt安装 需要自己下载安装包安装
我开始没有卸载8.0的mysql 在安装的时候就会发现存在client-8.0等跟你装的包冲突 所以你需要先卸载8.0的mysql
1、卸载MySQL8.0:
停MySQL服务:
sudo service mysql stop
卸载mysql(此处暂时先删掉你下载5.7版本的所有,不然会报找不到的错)
sudo apt purge mysql-*
删除mysql的文件包
sudo rm -rf /etc/mysql/
sudo rm -rf /var/lib/mysql*
删除apt中的包
sudo apt autoremove
sudo apt autoclean
再次清理
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
理论上已经全部删除,但是有可能还会有mysql的包 ,使用下面语句查看是否还有其他依赖以及包
dpkg --list | grep mysql
如果还有包,用下面语句一个一个删
dpkg -P +软件包名称
2、安装mysql5.7.31
个人比较喜欢每个软件以及文件都放在一个文件夹里,好区分 你们安装可以不创建新的文件夹
创建文件夹并进入创建的文件夹
mkdir mysql5.7.31
cd ~/mysql5.7.31
下载
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar
解压
sudo tar -vxf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar
image.png
删除两个文件并把5.7的压缩包移到外面
sudo rm -f mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb
sudo rm -f mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb
sudo mv mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar ~/Desktop
安装依赖
sudo apt-get install libtinfo5
sudo apt-get install libmecab2
使用deb安装
sudo dpkg -i mysql-*.deb
可能就会出现很多缺少依赖等
image.png
下载安装依赖(这时候安装的时候是需要输入初始密码的)
sudo apt install libaio1
剩下的可以看到是我们安装的时候顺序的原因造成的(我是再次一个一个安装的)
安装
sudo dpkg -i mysql-community-client_5.7.31-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_5.7.31-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-server_5.7.31-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-server_5.7.31-1ubuntu18.04_amd64.deb
最后再重新走了一次全部安装
sudo dpkg -i mysql-*.deb
到这里就是安装好了,启动服务,查看是否服务状态
sudo service mysql start
sudo service mysql status
修改监听
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉bind-address = 127.0.0.1, 即#bind-address = 127.0.0.1
3、配置除本地外其他客户端可访问
- 登录数据库
mysql -u root -p
- 选择数据库
use mysql;
- 修改root用户可以在所有机器登录(root只是举例,%表示所有机器)
update user set host = '%' where user = 'root';
- 重启服务
sudo /etc/init.d/mysql restart
4、修改配置文件(忽略表名的大小写)
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
将: lower_case_table_names=1 添加到 [mysqld] 位置下