You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4B上MySQL4.1.22远程连接失败求助

问题:MySQL4.1.22远程连接失败

我因使用仅兼容MySQL4的CAO faktura 1.4,在树莓派4B上编译安装了MySQL4.1.22,安装过程已完成。

已做的配置操作:

  1. 在my.cnf的[mysqld]段添加:
bind-address = 0.0.0.0
  1. 为root用户授权远程访问:
grant all on *.* to root@'%.%.%.%' identified by 'mypass';
  1. 通过SELECT user, host FROM mysql.user;确认用户权限配置正常,同时也创建了另一用户并授予全量远程权限。
  2. 因树莓派无默认防火墙,安装ufw并开放了my.cnf中指定的3307端口TCP连接。

问题现象:

  • 从Windows设备通过MySQL Workbench以TCP/IP方式连接时,提示"连接失败"。
  • 使用telnet测试时,初始能建立连接并返回如下内容,但3秒后连接断开:
4.1.22mysql4-log♥aGzV}2~I,☻0R..:vg$vMYW

Connection to host lost.
  • MySQL4的错误日志显示服务正常启动:
231019 21:23:42  mysqld started
231019 21:23:42  InnoDB: Started; log sequence number 0 44138
/usr/local/mysql4/libexec/mysqld: ready for connections.
Version: '4.1.22mysql4-log'  socket: '/usr/local/mysql4/var/mysqld.sock'  port: 3307  Source distribution

排查与解决思路

1. 协议兼容性问题(核心大概率原因)

MySQL4.1使用旧版认证协议,现代MySQL Workbench默认配置可能不兼容该协议:

  • 打开MySQL Workbench连接设置,切换到Advanced选项卡,添加配置项:useLegacyAuthPlugin=true;
  • 若Workbench版本过高无此选项,建议降级到MySQL Workbench 6.x版本,或使用MySQL 5.5及以下版本的客户端工具(比如旧版mysql命令行客户端)连接。

2. 调整连接超时参数

MySQL4.1默认连接超时参数可能过短,导致握手后快速断开。在my.cnf的[mysqld]段添加:

wait_timeout = 600
interactive_timeout = 600

保存后重启MySQL服务:

/usr/local/mysql4/bin/mysqladmin -u root -p shutdown
/usr/local/mysql4/bin/mysqld_safe &

3. 统一字符集配置

MySQL4.1默认字符集与现代客户端存在差异,可能引发解析错误。在my.cnf的[mysqld]段添加:

default-character-set=latin1
character-set-server=latin1

重启服务后再次测试连接。

4. 排查网络隐性拦截

  • 若为公网远程连接,检查树莓派所在路由器的端口转发规则,确保3307端口已正确转发到树莓派内网IP;
  • 临时关闭Windows端防火墙,测试是否能正常连接;
  • 在树莓派上用tcpdump抓包,确认数据包交互情况:
tcpdump -i any port 3307 -vv

查看是否有客户端连接请求,以及MySQL是否发送响应包,判断是否存在中间网络拦截。

内容的提问来源于stack exchange,提问作者Louis Eiden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 02:16:28