You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Server A连接MariaDB服务器(Server C)速度异常缓慢求助

问题分析与排查建议

环境概述

  • Server A:Debian 系统,搭载 Apache、PHP 组件
  • Server B(旧服务器):Debian 系统,搭载 MySQL 服务
  • Server C(新服务器):Debian 系统,搭载 MariaDB 服务

Server A 连接 Server B 耗时约 0.002 秒,速度极快;但连接 Server C 耗时在 0.3-1.5 秒之间,延迟明显。两台数据库服务器的 ping 响应速度一致,且已尝试同步 Server B 的配置参数到 Server C,问题仍未解决。

测试连接的 PHP 代码:

$begin = microtime(true);
$db_c = new PDO('mysql:host='.$dburl.';dbname='.$dbtable.';charset=utf8',$dblogin,$dbpass);
$db_c->query("SET NAMES 'utf8'");
$db_c->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$end = microtime(true);
$temps = $end - $begin;

具体排查方向

1. 禁用反向 DNS 解析

MySQL/MariaDB 默认会对客户端 IP 做反向 DNS 查找,若 Server C 的 DNS 配置存在延迟,会导致连接耗时增加。在 Server C 的 my.cnf(或 my.ini)配置文件中添加:

skip-name-resolve

保存后重启 MariaDB 服务,再测试连接速度。

2. 调整用户认证插件

MySQL 与 MariaDB 默认认证插件存在差异:旧版 MySQL 常用 mysql_native_password,而新版 MariaDB 默认使用 caching_sha2_password,后者在某些场景下会增加连接延迟。在 Server C 上执行 SQL 修改目标用户的认证插件:

ALTER USER '你的用户名'@'ServerA的IP' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

修改后重新测试连接。

3. 优化 TCP 栈参数

检查 Server C 的 TCP 配置,临时调整以下参数测试效果:

# 禁用 TCP 延迟确认
echo 0 > /proc/sys/net/ipv4/tcp_delack_min
# 增大 TCP 接收窗口
echo 4194304 > /proc/sys/net/core/rmem_max

若有效,将参数写入 /etc/sysctl.conf 实现永久生效。

4. 优化 PDO 连接配置

将手动执行的 SET NAMES 替换为 PDO 初始化命令,同时显式指定端口,减少连接过程中的协商开销:

$options = [
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
];
$db_c = new PDO('mysql:host='.$dburl.';port=3306;dbname='.$dbtable.';charset=utf8', $dblogin, $dbpass, $options);

也可尝试开启持久连接(注意需评估持久连接带来的资源占用风险):

$options[PDO::ATTR_PERSISTENT] = true;

5. 抓包定位延迟环节

在 Server A 上通过 tcpdump 抓取与 Server C 的数据库连接数据包,分析延迟发生在哪个阶段:

tcpdump -i any host ServerC的IP and port 3306 -w mysql_capture.pcap

用 Wireshark 打开捕获文件,确认是 TCP 握手慢、认证阶段慢还是其他步骤导致的延迟。

内容的提问来源于stack exchange,提问作者Fabien Duplus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 01:27:37