这里有三个问题。
1 – 现在忘记SSH隧道
您不能将MySQL绑定到多个特定IP。
第一个bind-address子句被第二个覆盖(因此被忽略)。您的服务器仅侦听99.99.99.99。
您可以使用-h localhost连接但不与-h 127.0.0.1连接的原因是在第一种形式中,实际上并不是通过TCP / IP连接,而是通过本地套接字连接。
在你的my.cnf中查找一个socket子句。
删除一个冗余的bind-address子句。您可能需要使用bind-address = 0.0.0.0,它指示MySQL守护程序监听所有网络接口。
2 – 让我们设置你的SSH隧道
你的错误原因ERROR 2013(HY000):在“读取初始通信包”时失去了与MySQL服务器的连接,系统错误:0对我来说并不明显。我怀疑SSH隧道实际上只有当它收到连接请求(在你的情况下,当你运行mysql客户端)时才建立。由于您的服务器不监听127.0.0.1(见前一段),SSH隧道无法建立,连接失败,客户端将其解释为网络故障。
3 – 为什么mysql -v -h localhost -P 9989 -u user userdb -p failed
请张贴输出
[编辑:刚添加…或主机LIKE’localhost’在下面,因为这可能与故障排除相关]
mysql > SELECT user, host FROM mysql.user WHERE user LIKE 'user' OR host LIKE 'localhost';
(如果需要,将LIKE子句后的“user”替换为实际的用户名)
MySQL访问控制检查用户名/密码(用户)和连接(主机)的来源以识别用户。你可能没有创建一个用户’@’localhost’。
N.B:mysql.com目前无法从我的位置访问,我无法链接到相关的手册页。