树莓派3 MySQL远程连接报错10061,求助配置方法
首先得明确:树莓派上默认装的大概率是MariaDB(MySQL的官方分支),它的配置文件结构和传统MySQL不一样,你直接改/etc/mysql/my.cnf找错地方了,这也是加了bind-address后服务重启失败的原因。下面一步步帮你排查解决:
1. 定位正确的配置文件
树莓派的MariaDB核心配置都在/etc/mysql/mariadb.conf.d/目录下,打开最关键的50-server.cnf文件:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
找到[mysqld]区块,里面默认会有bind-address = 127.0.0.1(只允许本地连接)。如果没找到,手动添加一行:
[mysqld] bind-address = 0.0.0.0 # 允许所有局域网IP访问,也可以指定具体网段比如192.168.1.0/24
保存退出(按Ctrl+O回车确认,再Ctrl+X),然后重启服务:
sudo systemctl restart mariadb
这次重启应该就能成功了。
2. 给MySQL用户开通远程访问权限
就算监听地址改对了,你的数据库用户可能没有远程连接权限,这也会导致连接被拒。先登录MySQL控制台:
mysql -u root -p
输入root密码后,执行授权SQL(把your_username换成你要用的远程连接用户名,your_password换成密码,192.168.1.%换成你的局域网网段,比如你电脑IP是192.168.1.100,就写192.168.1.100,用%允许所有IP但不太安全):
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'192.168.1.%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; FLUSH PRIVILEGES;
执行完输入exit;退出MySQL。
3. 检查树莓派防火墙
树莓派默认可能开启了ufw防火墙,需要放行3306端口(MySQL默认端口):
sudo ufw allow 3306/tcp sudo ufw reload
如果没装ufw,用iptables也可以:
sudo iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.0/24 -j ACCEPT
4. 测试连接
现在用HeidiSQL重新尝试:填写树莓派的局域网IP(比如192.168.1.xxx)、刚才授权的用户名密码、端口3306,应该就能正常连接了。
如果还是失败,先检查MariaDB服务状态:
sudo systemctl status mariadb
要是服务没正常运行,查看日志找错误原因:
sudo journalctl -u mariadb
内容的提问来源于stack exchange,提问作者Jonas

