Mysql帐号远程登陆时 ERROR 1130 的解决办法

当使用Mysql帐号远程登陆的时候,出现类似如下错误:
ERROR 1130: Host '192.168.1.10' is not allowed to connect to this MySQL 
解决办法:
1. 改表法
    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在安装mysql数据库的那台电脑,用localhost,登入mysql后,更改"mysql" 数据库里的"user" 表里的"host" 项,从"localhost"改称"%" 
2. 授权法
方法一:
     例如,你想lxb使用123456从任何主机连接到mysql服务器的话,[注:也可以使用root用户] 
     GRANT ALL PRIVILEGES ON *.* TO 'lxb'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;  
方法二:
GRANT ALL PRIVILEGES ON *.* TO'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
     如果你想允许用户myuser从ip为192.168.0.2的主机连接到mysql服务器,并使用mypassword作为密码 
     GRANT ALL PRIVILEGES ON *.* TO 'lxb'@'192.168.0.2' IDENTIFIED BY '123456' WITH GRANT OPTION;  
GRANT ALL PRIVILEGES ON *.* TO'myuser'@'192.168.1.10' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
操作完毕后,记得重新启动mysql服务, 即可访问啦。

### 解决 Ubuntu 上无法连接到 MySQL 服务器的问题 当遇到错误 `ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)` ,这通常表示客户端尝试通过 TCP/IP 连接到 MySQL 服务失败。以下是可能的原因以及解决方案: #### 可能原因分析 1. **MySQL 服务未启动** 如果 MySQL 服务尚未运行,则任何连接请求都会被拒绝。可以通过以下命令检查服务状态: ```bash sudo systemctl status mysql ``` 2. **防火墙阻止端口访问** 默认情况下,MySQL 使用的是 3306 端口。如果系统的防火墙配置阻止了该端口的流量,也会导致此问题。 3. **绑定地址配置不正确** MySQL 配置文件中的 `bind-address` 参数决定了它监听哪些 IP 地址。默认值通常是 `127.0.0.1` 或者 `::`(IPv6 的任意地址)。如果不允许外部访问或者绑定到了错误的地址,可能会引发此类错误[^2]。 4. **权限设置不当** 用户账户缺少必要的权限也可能引起连接失败。例如,用户仅限于本地登录而不能远程登录。 5. **网络或主机名解析问题** 客户端指定的目标地址可能是不可达的或者是无效的名称。 --- #### 排查与修复方法 ##### 方法一:确认 MySQL 是否正在运行 执行以下命令来验证 MySQL 服务的状态并重新启动服务(如有必要): ```bash sudo systemctl start mysql ``` 随后再次测试连接功能。 ##### 方法二:调整 bind-address 设置 打开 MySQL 主要配置文件 `/etc/mysql/my.cnf` 并查找 `[mysqld]` 下面是否有如下行存在: ```ini bind-address = 127.0.0.1 ``` 为了支持来自其他机器上的应用访问数据库实例,请将其更改为 `0.0.0.0` 表示接受所有接口上的连接请求;不过需要注意安全风险,在生产环境中应谨慎操作。 保存更改之后重启服务生效: ```bash sudo systemctl restart mysql ``` ##### 方法三:开放防火墙端口 确保 Linux 防火墙允许传入的数据包到达目标端口号即 3306 。可以使用 ufw 命令实现这一点: ```bash sudo ufw allow 3306/tcp sudo ufw reload ``` ##### 方法四:授予适当用户的权限 假设需要让某个特定用户名能够从另一台计算机上成功登陆的话,那么就需要赋予相应的权限给那个账号。比如创建一个新的具有全局访问权的新用户 “newuser”,密码设为“password”: ```sql CREATE USER 'newuser'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%'; FLUSH PRIVILEGES; ``` 上述 SQL 脚本会建立一个新用户并且给予完全控制整个数据库的权利。“%” 符号意味着这个用户可以从任何地方发起链接尝试。 ##### 方法五:核查日志记录寻找更多线索 查看 mysqld 错误日记可以帮助定位具体是什么阻碍了正常运作流程。路径一般位于 `/var/log/mysql/error.log` 文件里边儿。利用 grep 工具快速检索关键字如 connection refused 来缩小范围: ```bash grep -i "connection refused" /var/log/mysql/error.log ``` --- ### 总结 以上列举了几种常见情况及其对应的处理办法用于解决因各种因素造成的无法连通至 localhost:3306 处的服务状况。实际部署过程中还需结合具体情况灵活运用这些技巧加以调试优化性能表现同保障数据安全性[^1]^。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值