情况 1——云服务器控制台防火墙未开启

在腾讯云实例防火墙或者阿里云的实例安全组开放 MySQL 的端口,默认是 3306

image-20221014230455913

情况 2——未设置远程用户

没有设置远程用户的情况下需要设置远程用户,将用户的 Host 设置为%即为允许所有来源的连接

先试用 ssh(你可以选择其他的任何方式) 连接到服务器,进入 mysql

$ mysql -u root -p
# 输入你的密码

通过宝塔安装的可以点击这里查看/修改 root 密码

image-20221014225517038

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 语句

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)

image-20221014231532179

如果防火墙的状态是【运行中】那么就需要在端口规则中添加开放端口

image-20221014231805985

如果是【已停止】那么就跟系统防火墙无关了

image-20221014231723201


前端小白