Cpanel主机迁移后CodeIgniter网站MySQL连接权限错误求助
解决Cpanel迁移后CodeIgniter数据库连接及MySQL问题
核心错误分析
你遇到的核心错误明确指向数据库连接权限或配置问题:
CodeIgniter\Database\Exceptions\DatabaseException #8
Unable to connect to the database.
Main connection [MySQLi]: Access denied for user '****'@'localhost' (using password:YES)
排查修复步骤
1. 核对CodeIgniter数据库配置文件
找到项目对应的配置文件:
- CodeIgniter 3:
application/config/database.php - CodeIgniter 4:
app/Config/Database.php
逐一检查以下字段,确保和新主机Cpanel里的数据库信息完全匹配: hostname:Cpanel主机一般为localhost,部分主机可能用专属IP,以新主机面板显示为准username:注意Cpanel数据库用户名带主机前缀(格式通常为主机前缀_用户名),和旧主机可能不同password:确认密码大小写、特殊字符和新主机设置的一致,不要复制粘贴时带多余空格database:新主机上导入的数据库名称,同样注意前缀差异
2. 验证数据库用户权限
通过新主机Cpanel进入MySQL数据库管理界面:
- 确认创建的数据库用户已关联到目标数据库,且拥有
ALL PRIVILEGES权限 - 用SSH直接测试用户登录:
输入密码登录成功后,切换到目标数据库:mysql -u 你的数据库用户名 -p
这两步无报错,说明用户权限正常,问题出在配置文件。USE 你的数据库名;
3. 检查数据库导入完整性
迁移时若用phpMyAdmin或mysqldump导入,可能出现导入不完整:
- 对比新旧数据库的表数量、数据量,确认所有表、数据、触发器、存储过程都已导入
- 查看导入日志,排查是否有字符集不兼容、表结构报错等问题
4. 清理CodeIgniter缓存
- CodeIgniter 3:删除
application/cache下所有文件 - CodeIgniter 4:删除
writable/cache和writable/session下的文件 - 同时清理浏览器缓存,避免旧配置残留
5. 确认MySQL服务状态
通过SSH执行命令检查并重启服务:
# 查看状态 systemctl status mysqld # 重启服务(Cpanel专用命令) /scripts/restartsrv_mysql
若服务异常,查看MySQL错误日志(/var/log/mysqld.log或Cpanel面板日志工具)定位问题
其他关联问题修复
你提到的后续MySQL相关问题(如找不到表、操作报错等),大多是配置不匹配、导入不完整或权限不足导致的,按上述步骤排查后基本都能解决:
- 表不存在报错:确认数据库导入完整,Linux主机注意表名大小写区分
- 数据库操作失败:检查用户是否有对应表的
INSERT/UPDATE等操作权限
内容的提问来源于stack exchange,提问作者Muhammed
相关产品推荐
相关产品推荐

