情况 1——云服务器控制台防火墙未开启
在腾讯云实例防火墙或者阿里云的实例安全组开放 MySQL 的端口,默认是 3306
情况 2——未设置远程用户
没有设置远程用户的情况下需要设置远程用户,将用户的 Host 设置为%
即为允许所有来源的连接
先试用 ssh(你可以选择其他的任何方式) 连接到服务器,进入 mysql
$ mysql -u root -p # 输入你的密码 复制代码
通过宝塔安装的可以点击这里查看/修改 root 密码
mysql>use mysql # 切换到 mysql 数据库 mysql>select User,Host from user; +------+---------------+ | User | Host | +------+---------------+ | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | | | vm-0-2-centos | | root | vm-0-2-centos | +------+---------------+ 7 rows in set (0.00 sec) 复制代码
可以看到没有远程权限,只有本地的连接权限。
然后执行下面的 SQL 语句(123456 替换成你自己的密码)
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; mysql>flush privileges; //刷新权限 复制代码
然后再查看一下用户,已经多了 root 的远程用户。
mysql>select User,Host from user; +------+---------------+ | User | Host | +------+---------------+ | root | % | | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | | | vm-0-2-centos | | root | vm-0-2-centos | +------+---------------+ 7 rows in set (0.00 sec) 复制代码
情况 3——系统防火墙未开启
如果前两种情况都已经处理了,那么此时需要检查一下系统防火墙的端口是否开启,最简单的办法就是通过宝塔安装系统防火墙插件(也可以通过命令行查看,根据自己的系统自行 google)
如果防火墙的状态是【运行中】那么就需要在端口规则中添加开放端口
如果是【已停止】那么就跟系统防火墙无关了