连接远程服务器中的MySQL报错

本文介绍了解决MySQL远程连接权限错误1130的方法,包括登录MySQL服务器、检查和更新用户表中的Host字段以及刷新权限等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用本地连接远程服务器中的MySQL报:
1130-host … is not allowed to connect to this MySql server

报错原因:用户权限不够。
在数据库服务器中的mysql数据库中的user的表中没有权限(也可以说没有用户)

解决办法:
遇到这个问题首先到mysql所在的服务器上用连接进行处理

1、连接服务器,找到mysql的bin目录下启动命令行: mysql -u root -p

2、看当前所有数据库:show databases;

3、进入mysql数据库:use mysql;

4、查看mysql数据库中所有的表:show tables;

5、查看user表中的数据:select Host, User,Password from user;
  这一步中若显示某个字段不存在可以跳过。

6、修改user表中的Host:update user set Host=‘%’ where User=‘root’;

7、最后刷新一下:flush privileges;
动作要快 有连接时长限制,可以调节,但是我懒

参考自:https://www.cnblogs.com/Bighua/p/7629082.html

### Navicat 连接 MySQL 服务器 错误 2003 的解决方案 当遇到错误 2003 时,通常表示客户端无法建立与 MySQL 服务器的 TCP/IP 连接。这可能是由于网络配置不当或其他连接参数设置有误造成的。 #### 检查并修正 `bind-address` 设置 如果 MySQL 配置文件中的 `bind-address` 被设为了仅监听本地地址 (例如 `127.0.0.1`) ,那么远程连接将会被拒绝。可以通过编辑 MySQL 的配置文件 `/etc/mysql/mysql.conf.d/mysqld.cnf` 来允许来自任何 IP 地址的连接请求[^2]: ```bash sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf ``` 找到 `bind-address=127.0.0.1` 并将其更改为 `bind-address=0.0.0.0` 或者注释掉这一行以接受所有接口上的连接请求。更改完成后重启 MySQL 服务使新配置生效: ```bash sudo systemctl restart mysql.service ``` #### 修改防火墙规则 确保操作系统级别的防火墙不会阻止外部访问 MySQL 默认端口 3306 。对于基于 RedHat/CentOS 的系统可以使用 firewalld 命令开放该端口;而对于 Debian/Ubuntu 则可利用 ufw 工具完成相同操作: RedHat/CentOS: ```bash firewall-cmd --permanent firewall-cmd --reload ``` Debian/Ubuntu: ```bash ufw allow 'MYSQL' ``` #### 更新 Navicat 中的目标主机信息 回到 Navicat 客户端,在创建或编辑现有数据库连接时,请务必指定正确的目标主机名或 IP 地址而不是 "localhost"[^1]。如果是通过公网IP进行连接,则应填写实际分配给服务器的那个公共IPv4地址而非回环地址(`127.0.0.1`)。 #### 授予适当权限 最后一步是要保证用于登录 MySQL 数据库账户有足够的权限执行所需的操作。特别是要授予 root 用户或者其他管理员级别账号能够从任意位置 (`%`) 登录的权利[^4]: ```sql UPDATE user SET host='%' WHERE User='root'; FLUSH PRIVILEGES; ``` 以上措施应该能有效解决大多数情况下因配置问题引发的 Navicat 和 MySQL 之间的连通性障碍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值