“unknown database”错误表明mysql服务器连接成功但数据库不存在或名称不匹配。需检查数据库是否存在、配置中database字段是否拼写一致、用户权限是否足够、字符集与端口设置是否正确。

出现“Unknown database”错误,说明CodeIgniter成功连接到了MySQL服务器,但指定的数据库名称不存在或拼写不一致。
确认数据库是否真实存在
登录MySQL命令行或phpMyAdmin,执行:
SHOW DATABASES;检查返回列表中是否有你配置文件里写的数据库名(注意大小写)。Linux系统下数据库名区分大小写,Windows通常不区分,但建议统一用小写避免隐患。
- 若不存在,需先创建:CREATE DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 若存在但名字有差异(如多了空格、下划线错位),请修正配置中的
database字段
检查CodeIgniter数据库配置
打开application/config/database.php,重点核对以下三项:
-
$db['default']['hostname']:确保是正确的MySQL地址(如localhost或127.0.0.1) -
$db['default']['username']和$db['default']['password']:账号需有该数据库的访问权限 -
$db['default']['database']:必须与实际数据库名完全一致,不含多余空格或不可见字符
验证用户权限是否足够
即使数据库存在,如果MySQL用户没有对该库的SELECT/INSERT等权限,部分驱动也可能报类似错误。执行:
SHOW GRANTS FOR 'your_user'@'localhost';若未包含ON `your_db_name`.*,需授权:
检查字符集与连接方式
某些旧版MySQL或特殊部署(如Docker、云数据库)可能默认禁用本地socket连接,或要求显式指定端口。可在配置中补充:
-
$db['default']['port'] = '3306';(显式声明端口) -
$db['default']['char_set'] = 'utf8mb4';和$db['default']['dbcollat'] = 'utf8mb4_unicode_ci'; - 若用
localhost连不上,尝试改用127.0.0.1(强制走TCP而非socket)











