本地无法远程连接MySql问题汇总


一、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;#刷新权限

再次测试连接,发现连接成功

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM