Chipmunk & Panda

-- 鼠熊部落格

All work and no play makes Jack a dull boy.

SSH 隧道远程连接 MySQL 数据库问题记录

问题描述

使用 Navicat 通过 SSH 隧道远程连接在 Ubuntu 服务器上的 MySQL 数据库时,报错内容类似如下。

1
Lost connection to MySQL server at ' handshake:reading initial communication packet',system error: 0

直接使用服务器访问本机 MySQL 没问题,但是使用 Navicat 通过 SSH 隧道连接时,就会超时。

问题解决

开启 SSH 转发

sqlyog ssh 方式连接 mysql 报错’reading initial communication packet’ > SSHD 远程端口转发的配置经验小结

修改配置文件 /etc/ssh/sshd_config 中配置项 AllowTcpForwarding 的值为 yes即可。

1
2
service sshd restart
systemctl restart sshd.service

修改后可能需要重启 ssh 服务才会生效,或者干脆直接重启服务器。

附属问题:修改 sshd_config 时提示只读

linux-root 都不能修改文件权限

  • 用户为 root 用户:排除没有权限的可能性。
  • ll 查看文件权限:排除文件权限设置错误问题。
  • 无法修改、删除 sshd_config 文件,但同时可以在目录下新建、删除文件:排除文件系统挂载为只读的可能性。
  • 使用 chomod 无法修改文件权限:很可能 chattr 指令相关。

使用 lsattr 查看文件属性,发现文件被设置了 i 属性,即不可修改。使用 chattr 去除 i 属性后便可以正常编辑。

1
2
3
4
$ lsattr /etc/ssh/sshd_config
----i---------e-- /etc/ssh/sshd_confi

$ chattr -i /etc/ssh/sshd_config