MySQL:如何从命令行导出和导入.sql文件?

我想从命令行导出和导入一个.sql文件到MySQL数据库和从MySQL数据库导入。

有没有任何命令在MySQL中导出.sql文件? 那我该如何导入它?

进行导入时,可能会遇到诸如启用/禁用外键检查仅导出表结构等约束。

我们可以用mysqldump设置这些选项吗?


要导出

如果它是整个数据库,那么:

$ mysqldump -u [uname] -p[pass] db_name > db_backup.sql

如果是全部数据库,那么:

$ mysqldump -u [uname] -p[pass] --all-databases > all_db_backup.sql

如果它是DB中的特定表,则:

$ mysqldump -u [uname] -p[pass] db_name table1 table2 > table_backup.sql

你甚至可以使用gzip自动压缩输出(如果你的数据库非常大):

$ mysqldump -u [uname] -p[pass] db_name | gzip > db_backup.sql.gz

如果您想远程执行此操作,并且有权访问有问题的服务器,那么以下操作将起作用(假设MySQL服务器位于端口3306上):

$ mysqldump -P 3306 -h [ip_address] -u [uname] -p[pass] db_name > db_backup.sql

导入

键入以下命令以导入sql数据文件:

$ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

在这个例子中,使用sat作为用户名将'data.sql'文件导入'blog'数据库:

$ mysql -u sat -p -h localhost blog < data.sql

如果您有专用的数据库服务器,请将localhost主机名替换为实际的服务器名称或IP地址,如下所示:

$ mysql -u username -p -h 202.54.1.10 databasename < data.sql

或者使用主机名,例如mysql.cyberciti.biz

$ mysql -u username -p -h mysql.cyberciti.biz database-name < data.sql

如果您不知道数据库名称或数据库名称包含在SQL转储中,您可以尝试如下所示:

$ mysql -u username -p -h 202.54.1.10 < data.sql

请参阅:http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html

如果你想要一个GUI工具,那么你可以使用SQLyog


键入以下命令以导入sql数据文件:

$ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

在本例中,使用vivek作为用户名将'data.sql'文件导入'blog'数据库:

$ mysql -u vivek -p -h localhost blog < data.sql

如果您有专用的数据库服务器,请将localhost主机名替换为实际的服务器名称或IP地址,如下所示:

$ mysql -u username -p -h 202.54.1.10 databasename < data.sql

要导出数据库,请使用以下命令:

mysqldump -u username -p databasename > filename.sql

请注意每种情况下的<>符号。


如果您已经在运行SQL shell,则可以使用source命令导入数据:

use databasename;
source data.sql;
链接地址: http://www.djcxy.com/p/30347.html

上一篇: MySQL: How to export and import a .sql file from command line?

下一篇: Restore MYSQL Dump File with Command Line