MySQL Workbench远程连接Raspbian Stretch MariaDB失败求助
解决树莓派MariaDB通过MySQL Workbench TCP/SSH远程连接失败的问题
我之前也碰到过几乎一模一样的问题,折腾了好一阵才搞定,给你几个额外的排查点和解决方案试试:
1. 精准配置MariaDB远程访问权限
虽然你提到root用户已具备权限,但很可能是权限的范围设置不对。先登录树莓派本地的MariaDB:
mysql -u root -p
输入密码后执行以下SQL语句,确保root允许从任意远程IP访问(如果要限制特定IP,把%换成对应IP段即可):
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的数据库密码' WITH GRANT OPTION; FLUSH PRIVILEGES;
执行完退出MariaDB控制台。
2. 检查MariaDB配置文件的隐藏限制
Raspbian Stretch的MariaDB配置确实有点分散,除了修改bind-address,还要注意这些细节:
- 找到主配置文件
/etc/mysql/mariadb.conf.d/50-server.cnf,定位到[mysqld]段落- 将
bind-address改为0.0.0.0(允许绑定所有IP) - 如果看到
skip-networking选项,一定要把它注释掉(加#前缀)
- 将
- 改完配置后重启MariaDB服务:
sudo systemctl restart mariadb
3. 排查树莓派防火墙拦截
Raspbian Stretch默认可能启用了ufw防火墙,直接挡住了3306端口的访问:
- 先查看防火墙状态:
sudo ufw status
- 如果看不到
3306/tcp的允许规则,添加并重载:
sudo ufw allow 3306/tcp sudo ufw reload
- 也可以临时关闭防火墙做测试,确认是不是防火墙的问题:
sudo ufw disable
测试完成后记得重新开启防火墙。
4. 核对MySQL Workbench的SSH连接参数
很多时候问题出在Workbench的配置细节上,再仔细检查一遍:
- SSH主机地址:填树莓派的真实IP(局域网用内网IP,外网用公网IP)
- SSH用户名:填树莓派的系统用户(比如默认的
pi),密码或密钥要确保正确 - TCP/IP over SSH的主机地址:必须填
127.0.0.1(因为是通过SSH隧道访问树莓派本地的MariaDB) - 端口保持默认的3306,数据库用户名填
root,密码对应你设置的数据库密码
5. 测试基础网络连通性
先排除网络层面的问题:
- 在本地电脑ping树莓派IP,确认网络连通:
ping 你的树莓派IP
- 用telnet测试3306端口是否能正常访问:
telnet 你的树莓派IP 3306
如果telnet连不上,那大概率是防火墙或MariaDB绑定地址的问题。
内容的提问来源于stack exchange,提问作者Malcolm G
相关产品推荐
相关产品推荐

