在将 易优CMS(Youzhicms)模板部署到宝塔面板 后,打开网站进行安装或访问时提示 “数据库查询有错”,这是一个非常常见的问题。通常出现在安装阶段或迁移站点后,主要原因是 数据库连接失败、配置错误、表不存在或权限问题。

易优CMS部署到宝塔时出现数据库查询错误,这是常见问题。以下是详细的排查和解决方案:
按 F12 打开开发者工具 → 切换到 Console/控制台 查看详细错误
位置:/config/database.php
// 正确配置示例 return [ 'type' => 'mysql', 'hostname' => 'localhost', // 或 127.0.0.1 'database' => '你的数据库名', 'username' => '数据库用户名', 'password' => '数据库密码', 'hostport' => '3306', 'charset' => 'utf8mb4', 'prefix' => 'ey_', // 注意前缀 ];
宝塔面板数据库信息获取:
登录宝塔 → 数据库 → 获取:
数据库名
用户名
密码(点击"从服务器获取")
# 测试数据库连接 mysql -u用户名 -p密码 -h localhost # 如果能连接,检查数据库是否存在 SHOW DATABASES; USE 数据库名; SHOW TABLES; # 应该能看到 ey_ 开头的表
重新导入SQL文件:
-- 在宝塔phpMyAdmin中操作 -- 1. 删除原有数据库 DROP DATABASE 数据库名; -- 2. 创建新数据库 CREATE DATABASE 数据库名 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- 3. 选择数据库 USE 数据库名; -- 4. 导入SQL文件(从易优CMS安装包获取) -- 文件位置:/data/EyouCMS.sql
通过宝塔导入:
宝塔 → 数据库 → 对应数据库的"管理"
选择"导入" → 选择SQL文件
字符集选择:utf8mb4_general_ci
-- 授权用户访问数据库 GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'localhost' IDENTIFIED BY '密码'; FLUSH PRIVILEGES;
PHP版本:易优CMS需要 PHP 7.1+
扩展检查:
- pdo_mysql ✓ - mysqli ✓ - curl ✓ - gd ✓ - mbstring ✓ - openssl ✓
禁用函数检查:
宝塔 → 软件商店 → PHP设置 → 禁用函数
确保没有禁用 putenv、proc_open等
# 检查数据库服务器 # 在SSH中执行 cat /www/server/panel/data/default.db # 或查看宝塔数据库配置文件 cat /www/server/data
多个配置文件需要修改:
主配置文件:/config/database.php
安装配置文件:/application/config.php
环境文件:/.env(如果有)
完整配置示例:
// /config/database.php return [ 'type' => 'mysql', 'hostname' => '127.0.0.1', // 重要:宝塔通常用127.0.0.1 'database' => 'eyoucms', 'username' => 'eyoucms_user', 'password' => 'StrongPassword@123', 'hostport' => '3306', 'dsn' => '', 'params' => [], 'charset' => 'utf8mb4', 'prefix' => 'ey_', // 必须与导入的SQL一致 'debug' => true, // 调试时开启 'deploy' => 0, 'rw_separate' => false, 'master_num' => 1, 'slave_no' => '', 'fields_strict' => true, ];
-- 修复可能损坏的表 USE 数据库名; REPAIR TABLE ey_archives, ey_arctype, ey_channeltype;
网站目录:/www/wwwroot/你的网站 运行目录:/public 防跨站攻击:关闭 伪静态:thinkphp
; 修改 /www/server/php/版本号/etc/php.ini max_execution_time = 300 max_input_time = 300 memory_limit = 256M post_max_size = 100M upload_max_filesize = 100M
# 在 my.cnf 中添加 [mysqld] max_allowed_packet = 100M innodb_buffer_pool_size = 256M character-set-server = utf8mb4 collation-server = utf8mb4_general_ci
备份数据库和文件
删除 /runtime目录
删除 /config/database.php文件
重新访问网站,进入安装向导
填写正确的数据库信息
# SSH登录服务器 cd /www/wwwroot/你的网站 # 清除缓存 rm -rf runtime/* # 修复权限 chmod -R 755 runtime chown -R www:www . # 重新生成配置 php think optimize:config
# 创建.env文件 cat > .env << 'EOF' APP_DEBUG = true [DATABASE] TYPE = mysql HOSTNAME = 127.0.0.1 DATABASE = 你的数据库 USERNAME = 用户名 PASSWORD = 密码 HOSTPORT = 3306 CHARSET = utf8mb4 PREFIX = ey_ EOF
错误提示 | 解决方案 |
|---|---|
SQLSTATE[HY000] [1045] | 数据库密码错误 |
SQLSTATE[HY000] [1049] | 数据库不存在 |
SQLSTATE[HY000] [2002] | 连接被拒绝,检查hostname |
Table 'xxx' doesn't exist | 表不存在,重新导入SQL |
Access denied for user | 权限不足,重新授权 |
如果以上方法都不行,使用全新安装:
宝塔操作:
1. 新建网站 2. 新建数据库 3. 设置伪静态为thinkphp 4. 关闭防跨站
文件操作:
cd /www/wwwroot/新网站 wget https://www.eyoucms.com/download/eyoucms.zip unzip eyoucms.zip chmod -R 755 . chown -R www:www .
访问安装:
http://你的域名/install 按向导完成安装
临时开启调试模式查看详细错误:
// 修改 /config/app.php 'app_debug' => true, 'app_trace' => true,
最重要:先看具体的错误信息,大部分问题通过检查数据库连接信息和重新导入SQL文件可以解决。
最终解决方法:PHP版本太高了,降低PHP版本就可以完美解决。
标签:
本文链接:http://www.7ov.cn/xinwendongtai/2129.html
版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!