MySQL Workbench导入现有数据库问题:SQL导入成功却无显示、CSV导入失败
先来说你遇到的第一个核心问题:导入.sql显示成功但看不到表,大概率是这几个原因,一步步排查:
确认导入的目标数据库是否正确
很多人用Workbench的Data Import时,会跳过「Default Target Schema」的选择——如果你的.sql文件里没有明确写USE xxx;指定库,Workbench可能会把表导入到默认的库(比如mysql或者你上次用的库),甚至如果没选目标库,可能直接没导入到任何可见的地方。
解决:重新打开Data Import,选好你的.sql文件后,在「Import Options」里的「Default Target Schema」下拉框里,选你要导入的现有数据库(如果没有就先手动创建一个同名库),然后再执行导入。导入完成后,右键左侧SCHEMAS面板,选「Refresh All」刷新一下,应该就能看到表了。查看导入日志找细节
导入完成后别着急关窗口,往下拉找到「Log」区域,仔细看日志内容:- 如果日志里有
ERROR字样,那说明其实导入没真的成功,只是界面提示有问题; - 如果日志里没有
USE your_db_name;这类语句,那就是导出的.sql文件没指定目标库,这时候你可以打开.sql文件,在最开头加上CREATE DATABASE IF NOT EXISTS your_db_name; USE your_db_name;,然后重新导入。
- 如果日志里有
用命令行验证(最准确)
有时候Workbench的界面会有缓存问题,看起来没表,其实已经导入了。打开终端/命令提示符,登录MySQL:mysql -u your_username -p输入密码后,先看所有数据库:
SHOW DATABASES;找到你要导入的库,进入后看表:
USE your_target_db; SHOW TABLES;如果这里能看到表,那就是Workbench界面没刷新,刷新一下就行;如果看不到,那就是导入过程真的有问题,回头看日志找错误。
再说说CSV导入的问题:
你提到的CSV是整个数据库的,这本身就不符合CSV的使用场景——CSV是单表数据文件,只能对应一张表的结构和数据。如果你的导出是整个数据库的CSV,那数据肯定是混乱的,Workbench根本没法识别哪个字段属于哪个表。所以这种情况放弃CSV导入,回到.sql文件的方案才是正确的。
内容的提问来源于stack exchange,提问作者user9644796




