sqlyog ssh方式連接mysql報錯'reading initial communication packet'

錯誤現(xiàn)象:

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

或者Lost?connection?to?MySQL?server?at?' handshake:reading?initial?communication?packet',?system?error: 2


ssh方式連接mysql 錯誤



錯誤回顧:AWS有一EC2主機A,自己搭建mysql服務器,ssh密鑰方式連接A主機沒有問題,sqlyog直連A主機的mysql 3306沒問題,其他B主機mysql直連A的3306沒問題。sqlyog用ssh方式連接A主機mysql不行,報錯,提示如上。


先是懷疑亞馬遜云上有限制,但是根據(jù)上面現(xiàn)象排除。限制也只能限制3306端口不能外連。

網上查了一圈,做如下:

1、有人說,在mysqld啟動的時候加入skip-name-resolve,配置my.cnf中有,沒用。。。

2、又有人說,需要在/etc/hosts.allow里加上mysqld:allow,這個我知道,我的沒有限制,我沒有動。

3、有人說監(jiān)聽地址不對,在配置文件中my.cnf添加 bind-address = 0.0.0.0后,問題依舊,其實不用添加,默認是ipv4和ipv6所有

一般到這,基本上能解決這個問題了,但是我沒有解決。

不服,繼續(xù)查找。

思路整理,我的ssh方式沒有問題,數(shù)據(jù)庫直接連3306端口沒有問題(暴露3306端口不安全,所以必須要用ssh方式),那也就是,ssh連接轉發(fā)mysql的tcp連接時出現(xiàn)了這個問題。


再查:

終于出來了,如果讓服務器支持sqlyog的ssh方式,sshd服務需要有一下配置:

/etc/ssh/sshd_config

X11Forwarding yes

X11DisplayOffset 10

PrintMotd no

PrintLastLog yes

TCPKeepAlive yes

AllowTcpForwarding yes??

我的配置中AllowTcpForwarding no。

no,no,no。折磨我一天。撒花 解決!

最大感想: 遇到問題直接Google,不要baidu!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容