MariaDB ERROR 2013(HY000):在“读取初始通信数据包”时失去与MySQL服务器的连接,系统错误:54

时间:2015-05-02 11:04:12

标签: mysql mariadb system-error

我尝试在Windows 7上连接到远程服务器(MariaDB 10)。

my.ini中的服务器设置

datadir=E:/MariaDB 10/data
port=3306
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
default_storage_engine=innodb
innodb_buffer_pool_size=2042M
innodb_log_file_size=50M
feedback=ON
character-set-server=utf8
skip-name-resolve
[client]
port=3306

用户授予以下权限

GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%' IDENTIFIED BY PASSWORD

我尝试过这些命令

>> nc -vz ip port
found 0 associations
found 1 connections:
1:  flags=82<CONNECTED,PREFERRED>
outif en0
src 192.168.31.242 port 58576
dst xxx.xxx.xx.xx port xxxx
rank info not available
TCP aux info available
Connection to xxx.xxx.xx.xx port xxx [tcp/creativepartnr] succeeded!

>>telnet xxx.xxx.xx.xx port
Trying xxx.xxx.xx.xx...
Connected to xxx.xxx.xx.xx.
Escape character is '^]'.
Connection closed by foreign host.



>>mysql -uremote -p -hxxx.xxx.xx.xx --port=xxxx
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 54

立即收到错误回复。

找不到任何其他系统错误的情况:54。

我在localhost上用ip和port尝试了相同的mysql命令,可以登录。

  1. 是Switch上的防火墙设置问题?(使用命令nc -vz可以正常工作。)
  2. 这是数据库设置问题吗?(它在localhost上运行良好。)

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我阅读了很多帖子,没有找到任何答案。在我的情况下,我可以从一些计算机成功连接,但不是我的笔记本电脑。原因是端口3306被公司阻止。我可以通过ssh tunneling(端口22)连接到mysql服务器。要么你的公司打开端口或使用ssh。希望这可以帮助其他人不浪费时间找到解决方案。您会看到错误消息(以毫秒为单位):

错误2013(HY000):在读取初始通信数据包时失去与MySQL服务器的连接,系统错误:54