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 数据库格式转换、站点数据迁移、轻量化数据库格式互通转换
复制以下代码
保存到服务器 命名 mysql.php
前端访问:域名/mysql.php 上传 点击开始转换 下载转换好的mysql文件 打开phpmyadmin上传即可
一、支持的 PHP 版本
✅ PHP 7.0 ~ PHP 8.3 全部完美运行
二、必须开启的 2 个扩展(宝塔默认都开了)
- PDO
- PDO_SQLite
99% 的宝塔环境 默认已经开启,不用你动!
运行环境:
PHP ≥ 7.0
开启扩展:PDO、PDO_SQLite
支持系统:Linux / Windows / 宝塔面板
文件权限:755
如果你宝塔里不知道怎么看
我告诉你 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\n";
$sql .= "-- 时间:".date('Y-m-d H:i:s')."\n\n";
foreach ($tables as $table) {
$cols = $pdo->query("PRAGMA table_info(`$table`)")->fetchAll(PDO::FETCH_ASSOC);
$sql .= "DROP TABLE IF EXISTS `$table`;\n";
$sql .= "CREATE TABLE `$table` (\n";
$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(",\n", $fields);
$sql .= "\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;\n\n";
$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).");\n";
}
$sql .= "\n";
}
$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 lang="zh-CN">
<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 class="main">
<h2>SQLite 转 MySQL 工具</h2>
<?php if($msg) echo '<div class="msg">'.$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>
声明与免责说明
- 1. 本站部分图片来源于 Unsplash,版权归原作者所有。
- 2. 本站文章、开源代码及免费下载资源仅供个人学习、研究或非商业用途参考,禁止用于商业盈利,版权归原作者所有。
- 3. 内容(含图片、文章、代码)部分转载自网络,若存在侵权,请联系 meng@yimiaonet.com 处理。
- 4. 未经本站书面许可,不得复制、盗用、采集、传播本站内容至任何平台。
- 5. 本站内容不构成专业建议,“OKMG”为注册商标,官方网站:www.okmg.cn,本站保留修改本声明的权利。

