phpMyAdmin 根本不支持上传文件夹,其 Import 页面仅接受单个 .sql/.csv/.json 文件;所谓“文件夹上传”实为误读——Web server upload directory 是管理员预置的本地路径,非浏览器拖拽目录,选文件夹会因无法读取而报错。
phpMyAdmin 根本不支持“上传文件夹”
直接说结论:phpmyadmin 的 import 页面只接受单个文件(如 .sql、.csv、.json),没有任何选项能导入整个文件夹。你看到的“从网站服务器上传文件夹”描述,大概率是误读了界面文字,或是混淆了其他工具(比如某些主机控制面板的自定义功能)。
为什么界面里好像有“文件夹”相关提示?
常见误解来源有两个:
- phpMyAdmin 的
Import页面底部有Web server upload directory字样,它指的是一个**预配置的服务器本地路径**(如/var/lib/phpmyadmin/upload/),管理员需手动把 SQL 文件提前放进去——不是让你拖拽文件夹,也不是浏览器支持文件夹上传; - 某些定制版 phpMyAdmin(如某些虚拟主机商魔改版)可能加了非标按钮,但底层仍调用单文件处理逻辑,选中文件夹会报错或静默失败。
实际触发的错误通常是:File cannot be read 或 No data was received to import,因为浏览器根本没把目录结构发给服务端。
想批量导入多个 SQL 文件,该怎么做?
必须先合并或逐个处理:
-
合并为一个文件:在终端执行
cat *.sql > all.sql(Linux/macOS)或type *.sql > all.sql(Windows CMD),再通过 phpMyAdmin 导入all.sql; -
用命令行代替:如果能 SSH 进服务器,直接运行
mysql -u user -p database_name ,循环执行或写简单 shell 脚本; -
检查文件编码和分隔符:多个 SQL 文件若含
CREATE DATABASE或重复表名,合并后可能报错;建议删掉冗余语句,只保留CREATE TABLE和INSERT。
注意:max_file_size 和 upload_max_filesize 限制依然生效——合并后的文件不能超过 phpMyAdmin 配置的上传上限(默认常为 2M)。
替代方案:用 mysqldump + source 更可靠
如果你有服务器权限,跳过 phpMyAdmin 上传环节更省事:
- 把所有 SQL 文件传到服务器任意目录(如
/home/user/sql/); - 进 MySQL 命令行:
mysql -u root -p; - 执行:
source /home/user/sql/file1.sql;(注意分号结尾,且路径必须是服务器绝对路径); - 重复
source命令导入其余文件——MySQL 原生命令不校验文件夹,也不受 PHP 上传限制。
这个流程绕开了浏览器、PHP 配置、临时目录权限三重干扰,出错时错误信息也更明确。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











