mysql - MySQL远程连接需要超过3分钟才能显示结果
问题描述
我正在尝试使用mysql
命令从本地服务器连接到远程服务器...
长时间延迟后的结果:
[root@local ~] mysqlshow -u test -p*** -h XXX.XXX.XXX.XXX
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 0
(连接是通过我的第二个远程服务器完成的,没有任何错误或延迟)
更新 1
connect_timeout=500
添加到远程服务器的/etc/my.cnf后重试从本地服务器连接:
[root@local ~] time mysqlshow -u test -p*** -h XXX.XXX.XXX.XXX
+---------------------+
| Databases |
+---------------------+
| foo |
| bar |
+---------------------+
real 3m21.174s <======== (3m!)
user 0m0.004s
sys 0m0.015s
连接成功,但显示结果延迟超过 3 分钟!
有趣的是,当连接建立后,其他mysql请求(例如mysql> SELECT
)立即生效!
更新 2
添加skip-host-cache
到skip-name-resolve
远程服务器的/etc/my.cnf ...
更新 3
通过我的第二个远程服务器的相同请求:(一切似乎都很好)
[root@remote2 ~] time mysqlshow -u test -p*** -h XXX.XXX.XXX.XXX
+---------------------+
| Databases |
+---------------------+
| foo |
| bar |
+---------------------+
real 0m0.016s <======== (0.016s)
user 0m0.007s
sys 0m0.002s
更新 4
从本地服务器检查 MySQL 连接telnet
:(一切似乎都很好!)
[root@local ~] time echo X | telnet -e X XXX.XXX.XXX.XXX 3306
Telnet escape character is 'X'.
Trying XXX.XXX.XXX.XXX...
Connected to XXX.XXX.XXX.XXX.
Escape character is 'X'.
telnet> Connection closed.
real 0m0.136s <======== (0.136s)
user 0m0.000s
sys 0m0.005s
更新 5
尝试mysqli
从本地服务器通过 PHP 连接:
<?php
$servername = "XXX.XXX.XXX.XXX";
$username = "test";
$password = "***";
$dbname = "dbname";
$conn = new mysqli( $servername, $username, $password, $dbname );
if( $conn->connect_error ) {
die($conn->connect_error);
}
?>
结果:
Warning: mysqli::__construct(): (HY000/2002): Permission denied in /var/www/html/test.php on line 7
Permission denied
(PHP mysqli 连接是通过第二个远程服务器完成的,没有任何错误或延迟)
更新 6
Retry with disabledSELinux
在本地服务器上解决了 PHP 连接错误,但连接仍然需要 3 分钟以上!
建立连接后,其他请求(例如SELECT
)立即生效。
更新 7
尝试从本地服务器连接后,在服务器的 phpMyAdmin(或mysqladmin proc
命令)上,使用未经身份验证的用户添加了新连接...
更新 8
XAMPP
在 Windows(从不同的 PC 和网络)上尝试连接到远程服务器:
相同的结果(与未经身份验证的用户连接并延迟超过 3 分钟才能显示结果)...
我快要疯了!!
解决方案
推荐阅读
- javascript - 如何在 fullpagejs api 中的 map 函数的多个部分上应用转换类?
- scala - 在 Spark 中按分组过滤
- bash - 包含 AND 逻辑运算符的 bash IF 子句不起作用
- github - Github gists 的限制
- exchangewebservices - 使用 AllItems 文件夹时,EWS FindItems 未搜索正文
- python - 将多个熊猫系列合并为一个并将索引转换为时间序列:Python
- elasticsearch - 弹性搜索覆盖特定字段
- javascript - 即使在将节点集成设置为 true 之后,我的 elctron 应用程序中也收到此错误(未捕获的 ReferenceError:ipcRenderer 未定义)
- php - 交互和合并来自两个外部 API 的数据
- json - 任何可视化 json 跟踪的 VSC 扩展?