SQLite 转 MySQL 数据库转换工具 插件描述
简介
轻量单文件 PHP 工具,无需安装复杂软件,一键将 SQLite (.db) 数据库文件无损转换为 MySQL 标准 SQL 导入文件,自动适配字段类型、主键自增、数据表结构,完美兼容宝塔面板、phpMyAdmin 数据库迁移使用。
运行环境
PHP 版本:PHP 7.0 ~ PHP 8.3
必备扩展:PDO、PDO_SQLite
运行平台:宝塔 Linux 面板、Windows php 环境、本地 PHP 网站环境
文件权限:755
功能特点
全自动解析 SQLite 数据表结构、字段类型、主键索引
智能适配 MySQL 字段格式,INT/TEXT/DATE/BLOB 类型自动转换
完整导出表结构 + 全部数据,数据零丢失、中文不乱码
生成标准纯净 SQL 文件,phpMyAdmin 直接导入可用
无需数据库连接、无需账号权限,上传.db 文件即可转换
单文件绿色插件,无冗余依赖,解压即用不占用服务器资源
使用方法 将工具上传至网站目录,浏览器访问运行 上传本地 SQLite .db 数据库文件 在线一键转换,下载生成 MySQL 数据库 SQL 文件 打开 phpMyAdmin,先选中目标数据库,导入 SQL 文件即可完成迁移 适用场景 小程序数据库迁移、本地.db 项目搬迁、CMS 数据库格式转换、站点数据迁移、轻量化数据库格式互通转换
适用场景
小程序数据库迁移、本地.db 项目搬迁、CMS 数据库格式转换、站点数据迁移、轻量化数据库格式互通转换
复制以下代码
保存到服务器 命名 mysql.php
前端访问:域名/mysql.php 上传 点击开始转换 下载转换好的mysql文件 打开phpmyadmin上传即可
一、支持的 PHP 版本
✅ PHP 7.0 ~ PHP 8.3 全部完美运行
二、必须开启的 2 个扩展(宝塔默认都开了)
PDO
PDO_SQLite
99% 的宝塔环境 默认已经开启,不用你动!
如果你宝塔里不知道怎么看
我告诉你 3 秒检查:
宝塔 → 软件商店 → 找到你的 PHP → 设置
点 安装扩展
看里面有没有:
pdopdo_sqlite
有这两个就能 100% 运行!

<?php
/*
* SQLite 转 MySQL 纯净版
* 一秒互联公司 www.yimiaonet.com
* 先选库再导入 = 100%不报错
*/
error_reporting(0);
set_time_limit(300);
header('Content-Type:text/html;charset=utf-8');
$msg = '';
if ($_POST@['action'] == 'convert') {
$dbFile = $_FILES['dbfile']['tmp_name'];
if (!$dbFile) {
$msg = '<span style="color:red">请上传 .db 数据库文件</span>';
} else {
try {
$pdo = new PDO("sqlite:$dbFile");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$tables = $pdo->query("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'")->fetchAll(PDO::FETCH_COLUMN);
$sql = "-- SQLite to MySQL
";
$sql .= "-- 时间:".date('Y-m-d H:i:s')."
";
foreach ($tables as $table) {
$cols = $pdo->query("PRAGMA table_info(`$table`)")->fetchAll(PDO::FETCH_ASSOC);
$sql .= "DROP TABLE IF EXISTS `$table`;
";
$sql .= "CREATE TABLE `$table` (
";
$fields = [];
foreach ($cols as $c) {
$name = $c['name'];
$type = strtoupper($c['type']);
$notnull = $c['notnull'];
$pk = $c['pk'];
if (strpos($type, 'INT') !== false) $mt = 'INT';
elseif (strpos($type, 'TEXT') !== false) $mt = 'LONGTEXT';
elseif (strpos($type, 'BLOB') !== false) $mt = 'LONGBLOB';
elseif (strpos($type, 'REAL') !== false || strpos($type, 'FLOAT') !== false) $mt = 'FLOAT';
elseif (strpos($type, 'DOUBLE') !== false) $mt = 'DOUBLE';
elseif (strpos($type, 'DATE') !== false || strpos($type, 'TIME') !== false) $mt = 'DATETIME';
else $mt = 'VARCHAR(255)';
$line = " `$name` $mt";
if ($pk) $line .= " PRIMARY KEY AUTO_INCREMENT";
elseif ($notnull) $line .= " NOT NULL";
$fields[] = $line;
}
$sql .= implode(",
", $fields);
$sql .= "
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
";
$rows = $pdo->query("SELECT * FROM `$table`")->fetchAll(PDO::FETCH_ASSOC);
$colNames = array_column($cols, 'name');
foreach ($rows as $row) {
$vals = [];
foreach ($colNames as $k) {
$v = $row[$k];
if ($v === null) $vals[] = 'NULL';
elseif (is_int($v) || is_float($v)) $vals[] = $v;
else $vals[] = "'".str_replace("'", "''", $v)."'";
}
$sql .= "INSERT INTO `$table` (`".implode('`,`',$colNames)."`) VALUES (".implode(',',$vals).");
";
}
$sql .= "
";
}
$out = 'mysql_ok.sql';
file_put_contents($out, $sql);
$msg = '<span style="color:green">✅ 转换成功!<a href="'.$out.'" download>点我下载SQL</a></span>';
} catch (Exception $e) {
$msg = '<span style="color:red">❌ 错误:'.$e->getMessage().'</span>';
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SQLite转MySQL 纯净版</title>
<style>
*{box-sizing:border-box}
body{background:#f6f8fa;padding:40px 20px;font-family:Microsoft YaHei}
.main{max-width:500px;margin:0 auto;background:#fff;padding:30px;border-radius:16px}
h2{text-align:center;color:#333}
input,button{width:100%;padding:12px;margin:8px 0;border-radius:8px;border:1px solid #ddd}
button{background:#007bff;color:white;font-size:16px}
.msg{padding:12px;text-align:center;border-radius:8px}
</style>
</head>
<body>
<div>
<h2>SQLite 转 MySQL 工具</h2>
<?php if($msg) echo '<div>'.$msg.'</div>'; ?>
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="action" value="convert">
<input type="file" name="dbfile" accept=".db" required>
<button type="submit">开始转换</button>
</form>
<br>
<div style="color:red;font-size:14px">
✅ 使用说明:<br>
1. 转换后下载 sql 文件<br>
2. 打开 phpMyAdmin <strong>先点左边选中你的库</strong><br>
3. 再导入,100%不报错
4.一秒互联公司版权所有
5.免费分享
</div>
</div>
</body>
</html>