直接填对配置项并清缓存即可连库;关键要区分ci3与ci4的配置路径、驱动名、语法及宝塔数据库权限细节,避免版本混用和权限遗漏。

直接填对配置项,再清缓存,基本就能连上。关键不是“怎么填”,而是别踩 CI3 和 CI4 的版本坑,也别漏掉宝塔里数据库的权限和连接方式细节。
确认你用的是 CI3 还是 CI4
CI3 和 CI4 的数据库配置文件位置、语法、驱动名全都不一样,混用必失败:
- CI3 配置文件路径:application/config/database.php;驱动可写
mysql(不推荐)或mysqli(推荐) - CI4 配置文件路径:app/Config/Database.php;驱动必须写
MySQLi或PDO(大小写敏感),mysql已彻底弃用 - CI4 若选
PDO,必须手动补全'DSN'字段,例如:'mysql:host=localhost;dbname=your_db;charset=utf8mb4' - CI3 加载数据库用
$this->load->database();CI4 推荐用service('database')或依赖注入
从宝塔面板抄准这四组值
登录宝塔 → 左侧「数据库」→ 找到你建好的 MySQL 库 → 点击「管理」或看列表中的字段。要抄的不是“root 密码”,而是你新建数据库时填的用户名、密码、库名,以及注意访问权限设置:
-
hostname:如果宝塔创建数据库时「访问权限」选的是「本地服务器」,就填
localhost或127.0.0.1(二者在 Unix 环境下不等价,优先试localhost);若选了「指定IP」或「所有人」,且你的 CI 项目不在同一台服务器上,则需填宝塔所在服务器的公网 IP,并确保宝塔「安全」页面已放行3306端口 - username 和 password:就是你在宝塔「添加数据库」时输入的账号密码,不是 MySQL 的 root 账号(除非你特意用了 root)
- database:宝塔里填的「数据库名」,必须已存在,且该用户对该库有读写权限(宝塔创建时默认已授权)
CI3 配置示例(application/config/database.php)
检查以下五处是否完全匹配:
-
$active_group = 'default';—— 不能注释、不能拼错 -
$db['default']['hostname'] = 'localhost';—— 别写成localhost:3306(端口由port字段单独设) -
$db['default']['username'] = 'bt_user';—— 宝塔生成的用户名,不是 root -
$db['default']['password'] = 'bt_pass123';—— 空密码要写'',不能写null -
$db['default']['database'] = 'myapp_db';—— 必须与宝塔中「数据库名」一字不差 -
$db['default']['dbdriver'] = 'mysqli';—— CI3 下禁用mysql(PHP 7+ 已移除)
CI4 配置要点(app/Config/Database.php)
修改 public $default 数组:
-
'DBDriver' => 'MySQLi',或'DBDriver' => 'PDO',(注意首字母大写) -
'hostname' => 'localhost',、'username' => 'bt_user',、'password' => 'bt_pass123',、'database' => 'myapp_db'—— 同 CI3 原则 - 若用
PDO,必须加:'DSN' => 'mysql:host=localhost;dbname=myapp_db;charset=utf8mb4' - 临时调试时设
'DBDebug' => true,错误信息会直接显示(如 “Access denied” 或 “Connection refused”) - 改完务必执行:
php spark cache:clear,否则旧配置可能仍被缓存











