在阿里云ECS上部署 WordPress 时,如果无法选择或创建数据库,通常是因为以下几个常见原因导致的。以下是详细排查和解决方法:
✅ 一、检查 MySQL/MariaDB 是否已正确安装并运行
-
登录 ECS 实例(通过 SSH)
ssh root@你的ECS公网IP -
检查 MySQL 服务状态
systemctl status mysql # 或者 MariaDB systemctl status mariadb -
如果没有运行,启动服务
systemctl start mysql # 或 systemctl start mariadb -
设置开机自启
systemctl enable mysql
✅ 二、确认是否已创建数据库和用户
WordPress 安装需要一个数据库和对应的数据库用户。
方法:使用 mysql 命令行创建数据库和用户
# 登录 MySQL(默认 root 用户)
mysql -u root -p
输入密码后进入 MySQL 命令行,执行以下 SQL:
-- 创建数据库(例如 wp_db)
CREATE DATABASE wp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建用户(例如 wp_user),并设置密码
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '你的强密码';
-- 授予用户对数据库的权限
GRANT ALL PRIVILEGES ON wp_db.* TO 'wp_user'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出
EXIT;
⚠️ 注意:
- 如果你是从本地远程连接 MySQL,可能需要允许
'wp_user'@'%',但出于安全考虑,建议仅限本地(localhost)。- 阿里云 ECS 默认禁止网络访问 3306 端口,需配置安全组。
✅ 三、检查 PHP 是否支持 MySQL 扩展
WordPress 需要 PHP 的 mysqli 或 pdo_mysql 扩展。
-
查看已安装的 PHP 模块:
php -m | grep -i mysql应看到类似:
mysqli pdo_mysql -
如果没有,安装扩展(以 Ubuntu/Debian 为例):
apt install php-mysql安装后重启 Web 服务(Apache/Nginx + PHP-FPM):
systemctl restart apache2 # 或 systemctl restart php-fpm
✅ 四、检查 Web 服务器能否连接数据库
可以创建一个简单的 PHP 测试文件验证数据库连接:
<?php
$servername = "localhost";
$username = "wp_user";
$password = "你的密码";
$dbname = "wp_db";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "数据库连接成功!";
?>
将此文件(如 test_db.php)上传到网站根目录(如 /var/www/html/test_db.php),然后浏览器访问 http://你的IP/test_db.php。
- 如果提示“连接成功”,说明数据库配置没问题。
- 如果失败,根据错误信息进一步排查。
✅ 五、检查 WordPress 配置文件 wp-config.php
确保 wp-config.php 中的数据库信息正确:
define('DB_NAME', 'wp_db');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', '你的密码');
define('DB_HOST', 'localhost');
❗ 常见错误:
- 数据库名、用户名、密码拼写错误。
DB_HOST写成了公网 IP 或错误地址,应为localhost(除非远程数据库)。
✅ 六、检查阿里云安全组设置(若使用远程数据库)
如果你的 MySQL 允许远程连接(不推荐生产环境):
- 登录 阿里云控制台
- 找到你的 ECS 实例 → 安全组 → 配置规则
- 添加入方向规则:
- 协议类型:MySQL (3306)
- 授权对象:
0.0.0.0/0(测试用)或你的 IP
- 同时修改 MySQL 配置允许远程访问(修改
bind-address在/etc/mysql/mysql.conf.d/mysqld.cnf)
⚠️ 警告:开放 3306 到公网有安全风险,建议仅用于调试,生产环境使用内网或 SSH 隧道。
✅ 七、其他常见问题
| 问题 | 解决方案 |
|---|---|
| MySQL root 密码忘记 | 使用安全模式重置密码 |
| PHP 版本过低 | 升级 PHP 至 7.4+ |
| 权限不足 | 检查 /var/www/html 目录权限,一般设为 www-data:www-data |
| 防火墙阻挡 | 关闭 ufw 或 firewalld,或放行 80/443/3306 |
✅ 总结步骤
- 确保 MySQL 正常运行
- 创建数据库和用户并授权
- 安装 PHP MySQL 扩展
- 验证数据库连接
- 正确配置
wp-config.php - 检查安全组和防火墙
如果你仍然遇到问题,请提供具体的错误信息(如 WordPress 提示什么?命令行报错?),我可以帮你进一步诊断。
CCLOUD博客