解决连接不上远程mysql数据库问题

我是用root用户连接的,后面分析原因是我的mysql root用户的连接权限默认是localhost,所以外网是连接不了的。

我的分析和解决步骤:

step 1:登入mysql监视器,通过命令: mysql -uroot -p

step 2.:根据提示输入密码

step 3: 选择mysql数据库,通过命令:use mysql;

step 4: 通过命令:select host,user from user;

界面如果是如下输出:

+-----------+-----------+
| host      | user      |
+-----------+-----------+
| localhost | mysql.sys |
| localhost | root      |
+-----------+-----------+

从上面的图可以看出,root用户的可连接权限的主机范围是localhost,我这边是用来测试玩,ip不固定,所以直接给所有主机都开放权限。

step 5:修改root用户的连接权限的主机范围为任一主机,执行命令:update user set host='%' where user='root';

step 6:  再查看root用户的连接权限:select host,user from user;

界面会是如下输出:

+-----------+-----------+
| host      | user      |
+-----------+-----------+
| %         | root      |
| localhost | mysql.sys |
+-----------+-----------+

从图中可以看到,root用户的可连接权限的主机范围是“%”符号了,该符号说明是任一主机。

step 7:如果修改完权限后你还是远程连接不上mysql数据库,那就是需要重启一下mysql服务器,执行命令:systemctl restart mysqld

到此,你再通过root用户重试连接就可以了。

最后,附上例图一张: