navicat远程连接报错

mysql,2003 can't connect to mysql server on 10038

我们连接远程服务器的mysql,如果出现问题,很大问题会出在服务器的端口和授权问题

复制代码
# 首先我们通过netstat -an|grep 3306来查看mysql默认的端口3306是否开启,允许哪个ip使用
如果你发现,前面有127.0.0.1,就说明,3306端口只能本机ip使用,我们需要
#打开mysql配置文件vi /etc/mysql/mariadb.conf.d/50-server.cnf
将bind-address = 127.0.0.1注销​
#进入mysql,对远程用户进行授权,
grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';
这里的root 是你远程登录的用户,xxxxxx是你登录使用的密码,然后可以在mysql数据 表中查看到你这个用户已经被添加到user表中
# 刷新权限
FLUSH PRIVILEGES;
# 重启数据库
/etc/init.d/mysql restart
复制代码

1130 - Host XXX is not allowed to connect to this MySQL server。

复制代码
#1.在用Navicat配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。
#2.在安装Mysql数据库的主机上登录root用户:
mysql -u root -p
#3.依次执行如下命令:
use mysql;
select host from user where user='root';
可以看到当前主机配置信息为localhost.
#4.将Host设置为通配符%
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。 
#注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置;
update user set host = '%' where user ='root';  # 报错不用理会
Host设置了“%”后便可以允许远程访问。
#5.Host修改完成后记得执行flush privileges使配置立即生效
flush privileges;
#6.使用navicat 成功连接至mysql
复制代码

 

posted @   老虎死了还有狼  阅读(413)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示