在 WordPress 的配置文件 wp-config.php 中,默认情况下并没有直接用于设置 MySQL 端口号的独立常量。WordPress 遵循标准的 PHP MySQL 扩展行为:如果未指定端口,默认连接 3306 端口。
但如果你使用的是非标准端口(例如阿里云 RDS、腾讯云 CDB 或自建服务器修改了默认端口),可以通过以下两种方式之一进行配置:
✅ 方法一:通过 DB_HOST 变量指定端口(推荐)
这是最常用且官方支持的方式。在 wp-config.php 中找到如下行:
define('DB_HOST', 'localhost');
将其修改为包含端口的格式:
define('DB_HOST', 'localhost:3307'); // 假设你的 MySQL 使用 3307 端口
⚠️ 注意:
- 如果数据库不在本地,需同时填写 IP 或域名和端口,例如:
define('DB_HOST', 'rm-xxx.mysql.rds.aliyuncs.com:3306');- 端口号前必须加冒号
:,不能有空格。- 确保防火墙/安全组已开放该端口。
✅ 方法二:通过 php.ini 或运行时覆盖(高级用户)
某些特殊场景下(如使用 PDO 或特定驱动),可能需要更底层控制。但绝大多数 WordPress 部署只需使用方法一即可。
🔍 验证是否生效
- 登录 WordPress 后台 → 工具 → 站点健康 → 信息 → 数据库。
- 查看“主机”字段是否显示你设置的带端口的地址。
- 或使用代码测试连接:
<?php
$host = DB_HOST;
list($hostname, $port) = explode(':', $host);
$conn = new mysqli($hostname, DB_USER, DB_PASSWORD, DB_NAME, intval($port));
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
echo "Connected successfully on port " . $port;
}
?>
将此脚本放在 WordPress 根目录并访问测试。
📌 常见国内云厂商注意事项
| 厂商 | 默认端口 | 备注 |
|---|---|---|
| 阿里云 RDS | 3306 | 可在控制台自定义端口,需在 wp-config.php 中显式指定 |
| 腾讯云 CDB | 3306 | 同上 |
| 华为云 RDS | 3306 | 同上 |
| 自建服务器 | 可自定义 | 务必同步修改防火墙规则(iptables/firewalld)和安全组 |
❗ 重要提醒
- 不要尝试定义不存在的常量如
DB_PORT,WordPress 核心代码不会读取它。 - 确保 MySQL 服务监听的是指定端口,可通过
netstat -tlnp | grep mysql或ss -tlnp | grep mysql验证。 - 若使用 SSL/TLS 加密连接(云厂商推荐),还需额外配置证书路径,但这属于进阶话题,超出本题范围。
总结:只需修改 DB_HOST 为 主机名:端口 格式即可实现端口自定义,简洁、有效、兼容性强。
CLOUD云枢