如何在MYSQL中仅使用mysqldump特定数据库和表

5

当我使用mysqldump时,遇到了一个特定数据库和表的问题。

首先,在IP服务器(111.111.1.1虚拟服务器)上有3个数据库,分别是DBname1、DBname2和DBname3。

我需要转储位于DBname2中的mm_cash表。

我使用的查询语句如下:

mysqldump --host=111.111.1.1 --user=fakeuser --password=fakepas --databases=DBname2 --tables=mm_cash --where="true limit 1" > D:\test.txt

然而,我遇到了这个错误:

mysqldump: [Warning] 在命令行界面上使用密码可能不安全。 mysqldump: [Warning] 忽略选项 '--databases',因为值 'DBname2' 无效。 mysqldump: [Error] 选项 '--tables' 不能带参数。

对于第二个错误,我已经确认数据库名称是正确的。请问有谁可以帮忙吗?
2个回答

5
问题在于您使用的选项--databases和--tables的方式。 实际上,您不应该使用它们,而是必须按照帮助中指定的方式在命令的末尾放置数据库名称和表名:
Usage: mysqldump [OPTIONS] database [tables]

试试这个:

mysqldump --host=111.111.1.1 --user=fakeuser --password=fakepas --where="true limit 1" DBname2 mm_cash  > D:\test.txt

谢谢,它可以用。顺便问一下,如果我想要一个只包含列标题和数据的文件,请给建议。请查看此脚本mysqldump --host=111.111.1.1 --column-statistics=0 --skip-triggers --extended-insert --compact --no-create-info --skip-lock-tables --user=fakeusesr --password=fakepas --where="true limit 100" DBname2 mm_cash > D:\test.txt。 - SN Palita
类似这样的代码? mysql -p --silent -e "select * from mm_cash " DBname2 - Gianluca Mereu
是的,这就是我要找的,非常感谢。最后一个问题,请问如何将此查询 mysql -p --silent -e "select * from mm_cash " DBname2 中的字段用 '|' 分隔开。现在是制表符。我在谷歌上搜索到了 --fields-terminated-by,但它不起作用。mysql -h -u -p -e "select * from table" databasename --fields-terminated-by='|' --lines-terminated-by='\n'> D:\test.txt - SN Palita
我认为不可能改变分隔符。但是你可以尝试使用-t参数:mysql -p -t --silent -e "select * from mm_cash" DBname2 - Gianluca Mereu
哪里出问题了?是最后一个命令吗?你正在使用哪个版本的mysql客户端?检查与 mysql -h 相应的标志。我的是:"-t,--table 以表格格式输出"。 - Gianluca Mereu
抱歉,这是我的错误。对于查询mysql -p -t -e "select * from mm_cash" DBname2<<,它可以工作,但它是一个表格式。以下是样本结果: +----+------------+------+ | id | amtf | week | | 1 | 214150.00 | 50 | | 2 | 256950.00 | 50 |然而,我需要将此文件批量插入SQL Server。我认为这种格式无法批量插入SQL Server。 - SN Palita

3
尝试这个...
mysqldump -u fakeuser -p DBname2 mm_cash > DBname2_mm_cash.sql

谢谢,它可用。顺便问一下,如果我想要一个仅包含列头和数据的文件,请给予建议。请参阅此脚本 mysqldump --host=111.111.1.1 --column-statistics=0 --skip-triggers --extended-insert --compact --no-create-info --skip-lock-tables --user=fakeusesr --password=fakepas --where="true limit 100" DBname2 mm_cash > D:\test.txt - SN Palita

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