从MySql导出转储文件

33

我想要创建一个数据库表的转储文件。 所以数据库名 --> king, 表名 --> castle 我想做的是创建一个转储文件.. 接下来要做的是将其导入到我的本地主机上。 数据库名称 --> king_local。 有任何想法吗!! 谢谢


我知道如何从终端导出数据库...但我正在寻找一种从mysql命令行导出它的解决方案。 - frazman
当然。这是我的修订意见:“阅读MySQL文档,了解如何将数据库表导出为CSV文件。提示:如果需要,可以在MySQL命令行中执行此操作。” - Pete Wilson
2
那StackOverflow还有什么意义呢...谁来决定你可以问什么问题...虽然我很感激你的想法..并且认为遵循你的建议对我长期有益.. :) - frazman
决定你可以问什么问题的人是你自己。但是如果问题的答案很容易在其他地方找到,那么你也可以使用neosporin来缓解一些轻微的炎症。换句话说,RTFM是某些问题可以接受的常见答案。 - Pete Wilson
@Fraz请考虑接受其他答案。 - naXa stands with Ukraine
4个回答

136

导出:

 mysqldump -u mysql_user -p DATABASE_NAME > backup.sql

导入:

 mysqldump -u mysql_user -p DATABASE_NAME < backup.sql

嗯,我收到了“backup.sql”权限被拒绝的错误。此外,有没有一种方法可以在MySQL内部完成这个操作,而不是从终端执行它。至少导出部分可以这样做。我可以在本地终端上执行导入操作。 - frazman
如果您使用的是Windows Vista或更高版本,则可能需要以“管理员”身份启动命令行,以获得在指定文件夹中创建文件的权限。 - serhio
成千上万的谷歌搜索结果 - 谷歌把我带到这里。 - AlexG
当你在使用LOCK TABLES时遇到错误mysqldump: Got error: 1044: Access denied for user ...,请在mysqldump命令中添加--single-transaction参数。 - dr0i
对于导入 mysqldump 不起作用。相反,使用此版本的导入命令 mysqldump -u mysql_user -p DATABASE_NAME < backup.sql - Pankkaj
1
使用mysqldump导入时没有任何反应,只有使用mysql命令才有效:mysql -u mysql_user -p DATABASE_NAME < backup.sql - Harkály Gergő

2

由于您现在似乎想从MySQL监视器中导出数据,因此您需要查看MySQL关于SELECT ... INTO OUTFILE的文档:

http://dev.mysql.com/doc/refman/5.0/en/select.html

INTO OUTFILE是您用来将数据转储到所述“outfile”中的内容,您需要指定MySQL可以写入的位置的完整路径,例如/tmp/dump.sql。

然后,您需要注意文档,以便指定如何结束行、分隔字段等:

FIELDS TERMINATED BY,ENCLOSED BY,ESCAPED BY,LINES TERMINATED

然后,要加载回来,LOAD DATA INFILE似乎是您想要的。请访问我发布的URL,它拥有您需要的所有信息。


1
例如,要分别转储表定义和数据,请使用以下命令:
mysqldump -u mysql_user -p --no-data test > dump-defs.sql
mysqldump -u mysql_user -p --no-create-info test > dump-data.sql

0

如何在Windows的WAMP中导出数据库,请按照以下步骤进行:
1. 打开命令提示符
2. 切换到mysql的bin文件夹(例如,CD C:\wamp64\bin\mysql\mysql5.7.14\bin)
3. 运行下面的命令,其中'password'是您的mysql根密码,'dbname'是您的数据库名称,路径在双引号内是您要保存文件的目录。

命令:

mysqldump -u root -p password dbname > "D:\db\db_backup.sql"

1
-p 和密码之间不应该有任何空格。它应该像 mysqldump -u root -pPassword 这样。 - Daniel G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接