如何在本地导入mysqldump文件

时间:2012-05-07 17:13:59

标签: mysql mysqlimport

我想在我的数据库中导入一个sqldump文件" dbname"进入表格"数据"不使用网络接口。

当我通过

导入文件时
mysql dbname -u databaseuser -pdatabasepass<data.sql

这在我的ubuntu 12.04上真的缓慢

但是当我使用它时:

mysqlimport -u databaseuser -pdatabasepass --local data.sql

它和正常一样快。

我认为,因为在我的mashine上,当使用&#34; mysql&#34;时,它会分别解析每一行。和&#34;&lt;&#34;

有没有办法使用mysqlimport语法导入带有CREATE和DROP TABLE东西的sql文件?

可能只是自动拆分sql-dump中的上部(使用drop table和create table语句),然后只将带有INPUT语句的其余文件发送到mysqlinsert,这应该可以工作

3 个答案:

答案 0 :(得分:0)

没有办法直接这样做。您需要做的是运行mysqldump --tab而不是正常的mysqldump,它将创建包含表定义的.sql文件和包含可以使用mysqlimport导入的数据的CSV文件。

答案 1 :(得分:0)

您可specify the path to a UNIX socket file使用--socket=/path/to/...(或-S),这可能会更快。您可以在服务器的my.cnf中找到套接字路径。所以,例如(我只是在这里编写路径);

mysql dbname -u databaseuser -pdatabasepass -S /var/run/mysqld/mysqld.sock < data.sql

答案 2 :(得分:0)

您可以使用此脚本:How do I split the output from mysqldump into smaller files?

并对其进行修改,因此您只在一个文件中包含create-statements,在另一个文件中只包含数据语句。