0%

解决MySQL数据导入 xxx don't exist 的问题

解决MySQL数据导入时 xxx doesn’t exist的问题

起因

在从Windows的Navicat导出MySQL表结构以及数据之后,不能把导出的sql重新导入到Linux中的MySQL,一直报错表”xxx doesn’t exist”。为了解决这个问题,找到以下两种解决方案,再次进行记录,以备不时之需。

解法

1.修改Linux中my.cnf配置文件中的大小写敏感字段

因为Linux中,MySQL默认大小写敏感,所以,如果直接使用source xxx.sql来进行表和数据导入,那么,有可能会报错”xxx doesn’t exist”。此时,我们需要在Linux系统路径/etc/mysql/my.cnf的文件[mysqld]节点下加入如下键值对,则可能解决问题。

1
2
# 网上很多都说改成1 但是本人测试改为1后无法正常启动
lower_case_table_names = 2

2. 使用mysqldump导出sql文件

参考这篇文章文章后发现,如果跨系统导出的话,使用mysqldump可以避免报错表”xxx doesn’t exist”,而且几乎没有MySQL版本不匹配的问题。在Windows系统MySQL/bin目录下执行以下命令,会在当前目录导出数据库的sql文件。

1
2
mysqldump -uroot -p 数据库名 > 文件名.sql
输入密码

补充

顺带把导入sql的方式也一并记录了。

1、使用Navicate自带的导入功能

选择`运行SQL文件…

导入SQL菜单

选择对应的SQL文件后,运行,注意取消红框中的钩

导入SQL界面

导入SQL界面

接下来就交给Navicat自行处理了。

2.使用MySQL命令行导入

在命令行登录至MySQL数据库

1
2
mysql -uroot -p
# 输入密码 密码字符不可见

查看MySQL的所有数据库

1
show databases;

进入xxx数据库

1
use <数据库名>

运行SQl文件

1
source <sql文件名>.sql

等待执行,完成导入。

That’s it!

-------- 本文结束 感谢阅读 --------