MySQL[MariaDB] ERROR 1130连接问题求助(Arch Linux环境)
解决MySQL ERROR 1130 (HY000): Unknown error 1130 连接问题
嘿,这个ERROR 1130我太熟悉了——本质是你的MySQL用户MYUSERNAME没有被授权从当前的Arch Linux主机远程连接到目标数据库服务器。下面给你一步步拆解解决办法:
1. 确认并修改MySQL用户的远程访问权限
首先你需要能登录到目标MySQL服务器(如果有服务器本地权限的话),执行以下命令登录:
mysql -u root -p
输入root账号密码进入MySQL命令行后,先查看当前MYUSERNAME的访问限制:
SELECT user, host FROM mysql.user WHERE user = 'MYUSERNAME';
你大概率会看到host字段是localhost或者127.0.0.1,这意味着这个账号只能从服务器本地登录,无法远程访问。
接下来修改权限,允许从任意IP连接(如果想限制特定IP,把%换成你的Arch主机IP即可):
GRANT ALL PRIVILEGES ON MYDATABASENAME.* TO 'MYUSERNAME'@'%' IDENTIFIED BY '你的用户密码';
执行完授权后,必须刷新权限让设置生效:
FLUSH PRIVILEGES;
2. 调整MySQL服务器的绑定地址配置
MySQL默认可能只绑定了本地回环地址,需要修改配置文件允许远程连接:
- 找到MySQL的配置文件,Arch上如果用MariaDB(主流替代MySQL的方案),路径通常是
/etc/my.cnf.d/server.cnf;原生MySQL则是/etc/my.cnf - 找到
bind-address这一行,把它改成0.0.0.0(允许所有IP访问)或者你的Arch主机的具体IP - 保存配置后,重启服务:
sudo systemctl restart mariadb # Arch上常用MariaDB,执行这个命令 # 若是原生MySQL则用:sudo systemctl restart mysqld
3. 开放服务器端的MySQL端口
最后别忘了开放MySQL的默认端口3306,否则即使权限和配置都对,防火墙也会拦截连接:
- 如果用ufw防火墙:
sudo ufw allow 3306/tcp sudo ufw reload
- 如果用firewalld防火墙:
sudo firewall-cmd --add-port=3306/tcp --permanent sudo firewall-cmd --reload
做完这些步骤后,再重新执行你的连接命令:
mysql --host HOSTNAME --user MYUSERNAME -p MYDATABASENAME
应该就能成功连接了。
内容的提问来源于stack exchange,提问作者xaos_xv
相关产品推荐
相关产品推荐

