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?