前言
笔者需要多个版本的MySQL方便验证一些问题,推动旧版的MySQL客户端升级,所以在虚拟机里面安装Ubuntu,然后在Ubuntu安装MySQL旧版本,笔者本机安装MySQL新版。没想到到处趟坑😅。以Ubuntu20版本为例。
1. 安装过程的坑
安装新版倒还好,直接apt-get即可,但是安装旧版,需要Oracle官网下载DEB安装包
本身是一个tar包,没有压缩,校验md5,一致,排除下载问题
执行tar -xvf mysql-xxx.tar -C xxx即可解压缩 ,但是?一大坨,为啥不能一键安装,狂抓😖
其中箭头的3个,看名称是测试用的,可以不安装
安装的原理是先安装mysql-common libmysql 然后安装mysql-community-server,最后安装mysql-server
#准备安装 sudo dpkg -i mysql-common_5.7.34-1ubuntu18.04_amd64.deb sudo dpkg -i libmysqlclient20_5.7.34-1ubuntu18.04_amd64.deb sudo dpkg -i libmysqlclient-dev_5.7.34-1ubuntu18.04_amd64.deb sudo dpkg -i libmysqld-dev_5.7.34-1ubuntu18.04_amd64.deb #安装client,mysql-community-server depends on mysql-client;mysql-client depends on mysql-community-client,so一个个来吧 sudo dpkg -i mysql-community-client_5.7.34-1ubuntu18.04_amd64.deb sudo dpkg -i mysql-client_5.7.34-1ubuntu18.04_amd64.deb #安装Server #需要输入root密码 sudo dpkg-preconfigure mysql-community-server_5.7.34-1ubuntu18.04_amd64.deb sudo dpkg -i mysql-community-server_5.7.34-1ubuntu18.04_amd64.deb sudo dpkg -i mysql-server_5.7.34-1ubuntu18.04_amd64.deb
至此mysql安装完成,验证看看mysql -u root -p,可以使用了😄
2. mysql只能localhost访问
Host is not allowed to connect to this MySQL server,原因是mysql严防死守
use mysql
select host,user from user;
只能localhost,😖,update user set host = '%' where user = 'root';
但是还是连不上啊,为啥啊,/etc/mysql/mysql.conf.d/mysqld.cnf文件😄
注释掉或者改为0.0.0.0表示所有连接 ,改完重启mysql: sudo service mysql restart
telnet OK
3. 防火墙
其实笔者是再次安装,以前出现过防火墙的问题的,只是笔者关闭了,Telnet不同可能是防火墙限制
不活跃,安装并未启用防火墙,一般会默认安装防火墙,尤其是生产环境,安装指令:sudo sudo apt-get install ufw
sudo ufw enable/disable 开关防火墙
sudo ufw reload 重启防火墙
开启防火墙后,Telnet挂了
开端口吧,😄
ufw默认是 default deny ,表示只能本机localhost访问
开放端口:sudo ufw allow 3306 / 关闭端口:sudo ufw delete allow 3306
开启后瞬间,Telnet OK,😄
可以指定协议,比如mysql tcp : sudo ufw allow 3306/tcp
针对某个IP开通端口: sudo ufw allow from 10.220.189.176 / sudo ufw delete allow from 10.220.189.176
针对某个IP开通3306端口:sudo ufw allow from 10.220.189.176 to any port 3306 / sudo ufw delete allow from 10.220.189.176 to any port 3306
引用至:(8条消息) Ubuntu系统中防火墙的使用和开放端口_Aaron_Run的博客-CSDN博客_ubuntu防火墙开放端口,这位大佬的文章
查看端口:sudo netstat -tunlp | grep 3306
4. 网络
网络是虚拟机或者容器网络方案,主要的方式有3种:NAT、桥接、host only
NAT :使用虚拟网卡方式,不能被外部的机器识别,需要转发端口才能被访问
桥接:虚拟机桥接到网卡,可以认为是一台独立的主机
host only:本机
建议桥接,局域网都可以访问,不用端口转发映射,以Parallels Desktop为例
笔者是WIFI网络,这里的共享网络即VM虚拟机的NAT模式
总结
安装一个普通的mysql,居然这么多拦路虎,新手直接劝退😅,当然可以一键安装,但是只能安装最新版,那么卸载呢
sudo apt-get remove mysql-common #卸载common,关联的就可以卸载了
清理残余:dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P