KodExplorer(芒果云)不提供对外数据库连接接口,其SQLite或MySQL配置仅在安装向导中初始化,无公开API或配置文件供外部直接调用;若需共用MySQL,须独立配置PHP项目连接同一实例,并确保账号权限与字符集正确。

芒果云(KodExplorer)本身不提供独立的数据库连接配置接口,它用的是内置 SQLite 或可选 MySQL —— 但它的数据库配置不是给开发者调用的,而是安装时由 Web 界面引导完成。如果你在写 PHP 代码想“连接芒果云的数据库”,大概率是误解了用途:你不是去连芒果云的库,而是要让自己的 PHP 应用连 MySQL,并且这个 MySQL 可能和芒果云共用同一台服务。
为什么不能直接“连接芒果云数据库”
芒果云的数据库只是它自己存用户、权限、文件元数据的地方,结构私有、无文档、不开放 API。它没有 config/database.php 那种供外部复用的配置入口。所谓“连接芒果云数据库”,实际只有两种可能场景:
- 你在二次开发芒果云,需要在它的 PHP 环境里读写自己的业务表 —— 此时你要改它的
application/config/database.php(如果用了 ThinkPHP 内核)或直接写原生 PDO; - 你另起一个 PHP 项目,想和芒果云共享同一个 MySQL 实例(比如都用
root账号连本地3306)—— 这时你配的是自己的项目,跟芒果云无关。
如何在自建 PHP 项目中连同一台 MySQL(和芒果云共用)
假设芒果云已按常规方式装在 Debian 上,MySQL 已启动、root 密码为空或已知,你的 PHP 项目要连它,关键就三点:地址、账号、权限。
-
hostname一般填127.0.0.1(不用localhost,避免 Unix socket 路径问题); - 确认 MySQL 允许
root从本地 TCP 连接:SELECT host, user FROM mysql.user WHERE user='root';,若只有localhost行,需执行CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'your_pass'; GRANT ALL ON *.* TO 'root'@'127.0.0.1'; FLUSH PRIVILEGES;; - PHP 侧用 PDO 最稳妥,DSN 中必须带
charset=utf8mb4,否则中文入库乱码:$dsn = "mysql:host=127.0.0.1;dbname=myapp;charset=utf8mb4";; - 别忘了在
php.ini开启extension=pdo_mysql,否则new PDO()直接报类不存在。
如果芒果云用了 SQLite,你的 PHP 项目没法“连它”的原因
芒果云默认使用 SQLite,数据库文件通常是 /home/kod/Data/Database/kod.db(路径依安装位置而定)。SQLite 是文件型数据库,PHP 虽然能用 PDO_SQLITE 打开它,但存在严重风险:
立即学习“PHP免费学习笔记(深入)”;
- 芒果云运行时会独占该文件,PHP 并发读写必然触发
database is locked错误; - 表结构未公开,字段名、外键、索引全靠猜,一次升级可能全失效;
- SQLite 不支持用户权限控制,直接暴露数据库文件等于暴露全部数据。
真要交换数据,走 HTTP API 或共享中间表(MySQL)更安全可控。
最常被忽略的一点:芒果云的 MySQL 配置只在首次安装向导里出现一次,之后界面不再暴露数据库参数。如果你没记下当时填的账号密码,就得进 MySQL 命令行重置,而不是翻芒果云的某个 config 文件 —— 它压根没存明文配置。



















