这里有三个问题。
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): Lost connection to MySQL server at 'readinginitial communication packet', system error: 0来说并不明显。我 怀疑
SSH隧道仅在收到连接请求时才建立(在您的情况下,当您运行
mysql客户端时)。由于您的服务器不侦听127.0.0.1(请参阅上一段落),因此无法建立SSH隧道,连接失败,并且客户端将其解释为网络故障。
3-为什么
mysql -v -h localhost -P 9989 -u user userdb -p失败
请发布的输出
[编辑:仅在...OR host LIKE 'localhost'
下面添加,因为这可能与故障排除有关]
mysql > SELECt user, host FROM mysql.user WHERe user LIKE 'user' OR host LIKE 'localhost';
(
'user'在
LIKE子句后,如有必要,请用实际用户名替换)
MySQL访问控制同时检查用户名/密码(
user)和连接源(
host),以识别用户。您可能没有创建用户
'user'@'localhost'。
注意:目前无法从我的位置访问mysql.com,我无法链接到相关的手册页。



