无法连接deepin虚拟机中的MySQL数据库的原因及处理方法

首先是安装方法

sudo apt update
sudo apt install mysql-server mysql-client

安装后在命令行登陆

mysql -uroot -p
输入密码
我是习惯root用于本地而单独开一个账户zanllp用于远程连接
use mysql;
CREATE USER zanllp;
UPDATE user SET authentication_string=PASSWORD('xxxxxxx') WHERE user='zanllp';
然后只赋予需要的权限

再使用navicat连接,出现1045 10061错误,我的排查顺序是
1.检查两边是否能够ping通
虚拟机的地址可由ifconfig得,主机地址即为网关地址。这个没问题
2.检查MySQL账户的host指定登陆ip,远程登陆的账户一般为%也就是都可以。这个也没问题
3.检查防火墙问题,deepin没有防火墙,其它linux有iptables,ufw...这个也没问题
3.检查MySQL的是否有在监听3306端口。

netstat -ant | grep mysql

这个也没问题
5.检查MySQL监听的是本地的3306,还是所有的3306
我的问题就出现在这里
这里的MySQL只监听了本地的3306端口。

无法连接deepin虚拟机中的MySQL数据库的原因及处理方法
解决办法:
找到my.cnf ,一般在/etc/my.cnf,我这里是/etc/mysql/my.cnf.
如果还是没有 find / my.cnf | gref my.cnf
在my.cnf后面添加

无法连接deepin虚拟机中的MySQL数据库的原因及处理方法
记得bind-address要在[mysqld]后面,没有自己加一个
出现什么问题service mysql status
重启服务
service mysql restart
连接成功!!!