一、2003- Can`t connect to mysql server on '101.200.73.190'
1、错误描述
2、错误原因
- 服务器上的mysql服务没有开启
- 无法ping通101.200.73.190
- 端口号3306没有开放
3、解决方法
先来确保服务器mysql服务开启:
然后本地打开powershell,ping一下服务器IP
能够ping通,我们再来看看服务器的端口号3306是否开放
好吧,端口号的问题,因为我用的是阿里云,Windows服务器没有开启防火墙,所以只需要在阿里云上加入入站规则即可,如下:
再监测下3306发现可以了
telnet 101.200.73.190 3306
然后再次在navicat上测试连接,发现有出现问题了:Host is not allowed to connect to this MySQL server,接下来说该问题的解决方法。
二、Host is not allowed to connect to this MySQL server
1、问题描述
-
远程服务器安装了mysql服务并且启动成功,在本地可以进行自由的访问和更新等操作
-
阿里云服务器已开通了远程访问服务器3306端口的权限并且通过telnet命令查看3306处于监听过程中
-
本地通过navicat工具连接mysql数据库报错如下:Host is not allowed to connect to this MySQL server
2、解决办法
- 远程连接服务器,在服务器内mysql系统目录下的/bin文件下打开powershell,按住shift+右键选择,会看到powershell
- 输入如下命令:
./mysql -u root -p;
- 输入密码登入mysql;
- 先来查询下数据库信息:
show databases;
- 执行use mysql命令,进入系统数据库,然后查询下用户情况
select host from user where user='root';
该结果表示是由于当前的root用户限制在当前的内网ip内访问的,需要修改访问域。
- 更改访问域,命令如下:
update user set host = ‘%’ where user = ‘root’;

- 重启mysql服务即可
解决了这个问题,又出现了新的问题,如下图:
三、1251- Client does not support authentication protocol
1、问题原因
mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
2、解决方法
方法一:升级navicat驱动;
方法二:把mysql用户登录密码加密规则还原成mysql_native_password;
这里详细介绍下方法二
远程连接服务器,打开powershell,进入MySQL的bin目录C:\MySql\mysql-8.0.22-winx64\bin,输入如下命令,然后输入密码,进入mysql模式
./mysql -u root -p
然后依次输入:
use mysql; alter user 'root' identified with mysql_native_password by 'qxh123';#更新一下用户的密码 flush privileges;#刷新权限
再次测试连接,发现连接成功