数据库导入失败主因是phpMyAdmin未启用或账号无权限;大文件超PHP上传限制需调大upload_max_filesize和post_max_size至128M并重启PHP,或改用mysql命令行导入。

数据库导入失败:提示“无法选择数据库”或“未指定目标库”
宝塔面板里点「导入」按钮后,文件上传成功但卡在选择数据库环节,甚至看不到下拉列表——根本原因是 phpMyAdmin 模块没启用,或者当前登录账号没有数据库管理权限。
- 确认已安装并启动
phpMyAdmin(在「软件商店」搜索开启,端口默认 888) - 用有数据库权限的账号登录,比如你新建过一个数据库叫
myapp_db,就必须用创建它时绑定的用户名(不是 root)登录 phpMyAdmin - 如果只装了 MySQL 但没装 phpMyAdmin,
导入.sql 文件功能在宝塔「数据库」页是灰色不可用的——别硬点,得换方式
大 SQL 文件(>2MB)上传直接报错或中断
宝塔默认用前端表单上传,受 PHP 的 upload_max_filesize 和 post_max_size 限制,超了就 500 或空白页,不是面板坏了。
- 改配置:进「软件商店」→ 找到正在用的 PHP 版本 →「设置」→「配置修改」,把
upload_max_filesize和post_max_size都调成128M(别写 128MB,单位必须是 M) - 重启 PHP 服务(改完点右上角「重载配置」)
- 仍不行?跳过网页上传,用命令行:
mysql -u用户名 -p 数据库名 ,注意路径用绝对路径,且 <code>mydata.sql要先通过 FTP 传到服务器上
导入后中文乱码、字段值变问号或空
不是编码选错了,而是 SQL 文件本身没声明字符集,或者导出时就没带 SET NAMES utf8mb4 这类语句。
- 检查 SQL 文件开头几行有没有
SET NAMES utf8mb4或SET CHARSET utf8;没有的话,手动在第一行插入SET NAMES utf8mb4; - 建库时没指定编码?导入前先执行:
ALTER DATABASE `数据库名` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; - 如果表已存在且字段是
utf8(不是utf8mb4),光改库没用,还得改表:ALTER TABLE `表名` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
导入完成但网站连不上数据库:提示“Access denied”或“Unknown database”
导入只是把数据写进 MySQL,不等于你的 PHP 应用能自动连上——连接配置还是旧的,或者账号没授权。
- 确认应用里的数据库配置(如
config.php)填的是你刚导入的目标库名、用户名、密码,不是本地测试用的 - 进宝塔「数据库」页,点对应数据库右侧的「权限」,确保「访问权限」是
%(允许远程)或localhost(仅本地),不是127.0.0.1(MySQL 认为和 localhost 不等价) - 如果用了新用户名,记得在「用户管理」里给它分配对应数据库的
SELECT,INSERT,UPDATE,DELETE权限,勾选后点「保存」
最常被跳过的其实是权限匹配和字符集声明这两步,不是文件传不上去,是传上去之后没生效。操作前先看一眼 SQL 文件头三行,再核对数据库用户的 host 字段,比反复重试快得多。










