Typecho 安装出现 Database Server Error 通常是因为数据库服务未启动、连接信息填写错误或 PHP 缺少 PDO 扩展。优先检查数据库进程状态和 php.ini 配置,避免直接修改核心代码。
先说结论:该报错本质是 PHP 无法通过 PDO 建立与数据库的 TCP 或 Socket 连接,多数情况无需重装系统即可修复。
- 先确认数据库服务(MySQL/MariaDB/SQLite)是否正在运行且端口可访问
- 先处理安装表单中的数据库地址、端口、用户名和密码字段
- 再验证 PHP 环境是否加载了 pdo_mysql 或 pdo_sqlite 扩展
命令速用版
通过命令行快速排查数据库状态和 PHP 扩展,适用于拥有 SSH 权限的服务器环境。
# 检查 MySQL/MariaDB 服务状态
systemctl status mysql
# 或
systemctl status mariadb
# 检查 PHP 是否加载 PDO 扩展
php -m | grep -i pdo
如果上述命令无返回或显示 inactive,需先启动服务或安装扩展。
为什么会这样
Database Server Error 是 Typecho 安装程序捕获到的 PDO 连接异常提示。Typecho 底层依赖 PHP PDO 扩展连接数据库,当配置文件中的主机名解析失败、密码验证不通过或扩展缺失时,安装程序无法写入初始数据,从而抛出该通用错误。
分步处理
- 检查数据库服务状态
登录服务器终端,执行
systemctl status mysql。若服务未运行,执行systemctl start mysql启动。 - 核对连接信息
在安装页面重新输入数据库名、用户名和密码。注意数据库主机填
localhost或127.0.0.1,若使用远程数据库需填写真实 IP 并确保 3306 端口开放。 - 检查 PHP 扩展
创建
phpinfo.php文件或在终端运行php -m,确认列表中存在pdo_mysql。若缺失,需通过包管理器安装对应扩展并重启 PHP 服务。 - 验证数据库权限
尝试使用相同账号密码在终端登录数据库
mysql -u 用户名 -p。若终端登录失败,说明账号密码错误或用户缺乏远程连接权限。
怎么验证是否生效
刷新 Typecho 安装页面,若报错消失并进入下一步设置管理员账号,说明连接成功。若仍报错,查看服务器错误日志/var/log/nginx/error.log或/var/log/apache2/error.log以及 PHP 日志,确认是否有具体的 PDO 错误信息。
常见坑
- localhost 与 127.0.0.1 区别:部分 PHP 配置中
localhost尝试使用 Unix Socket 连接,而127.0.0.1使用 TCP 连接,若 Socket 文件路径配置不一致,切换两者可解决。 - 密码特殊字符:数据库密码包含特殊符号可能导致解析错误,建议临时改为纯字母数字测试。
- Root 用户限制:部分数据库环境禁止 root 用户远程连接,建议新建专用数据库用户授权。
常见问题
Typecho 支持哪些数据库?
Typecho 原生支持 MySQL、PostgreSQL、SQLite 和 MariaDB,安装时需选择对应的适配器。
忘记数据库密码怎么办?
可通过服务器终端登录数据库执行ALTER USER命令重置密码,或修改配置文件中的密码字段。
安装完成后还能修改数据库信息吗?
可以,修改网站根目录下的config.inc.php文件中的数据库配置常量即可。
参考来源
- Typecho 官方仓库,Installation Requirements,https://github.com/typecho/typecho