Questions tagged «mysqldump»

MySQL的标准转储/备份实用程序

4
Mysqldump表不包括某些字段
有没有一种方法可以mysqldump没有某些字段的表? 让我解释一下: 我有一个名为的MySQL数据库tests。在tests我有3个表:USER,TOTO和TATA。我只是想mysqldump的表的一些领域USER,因此不包括像一些领域mail,ip_login等等。 我怎样才能做到这一点?
14 mysql  mysqldump 

1
最佳的mysqldump设置是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 经过一番搜索后,我得到了以下设置: mysqldump\ --host=localhost\ --port=3306\ --databases ****\ --user=****\ --password=****\ --default-character-set=utf8\ --add-drop-database\ --add-drop-table\ --add-locks\ --complete-insert\ --extended-insert\ --lock-all-tables\ --create-options\ --disable-keys\ --quick\ --order-by-primary\ --set-charset\ --tz-utc\ > dump/test.sql 到目前为止,还不错,但是我对参数以及执行有一些疑问。 关于我的第一个问题,我只想确保所有这些都是必需的,并且一起使用时不会引起任何冲突。最终,我想制作一个非常健壮和一致的转储文件,其中包含数百万条记录,用于创建表,数据库和插入数据。好处是,使数据库暂时不可用对我来说不是问题。我唯一的目标是制作一个健壮且一致的转储文件。 关于我的第二场音乐会,我想知道如何在命令出错时得到通知,如果出错,则抛出异常。 有任何想法吗? 编辑 这是我根据RolandoMySQLDBA的反馈更新的mysqldump命令。 mysqldump\ --host=localhost\ --port=3306\ --databases ****\ --user=****\ --password=****\ --default-character-set=utf8\ --opt\ --single-transaction\ --routines\ --triggers\ --events\ --add-drop-database\ --add-drop-table\ --complete-insert\ --delayed-insert\ --tz-utc\ …

2
导出所有关系数据的工具?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 是否有一种工具可以从表中的选定行中导出数据,而所有数据都存储在通过关系设计链接的其他表中的其他表中? 目的是简化用于临时迁移的服务器之间的数据位迁移。我正在寻找具有定义的外键的MySQL InnoDB工具。

4
无NULL,但编码“ UTF8”的字节序列无效:0x00
我花了最后8个小时尝试将mysqldump --compatible = postgresql的输出导入到PostgreSQL 8.4.9中,并且在这里和其他地方已经阅读了至少20个不同的线程,但是都没有找到关于此特定问题的信息。实际可行的答案。 MySQL 5.1.52数据转储: mysqldump -u root -p --compatible=postgresql --no-create-info --no-create-db --default-character-set=utf8 --skip-lock-tables rt3 > foo PostgreSQL 8.4.9服务器作为目标 使用'psql -U rt_user -f foo'加载数据正在报告(其中很多,这是一个示例): psql:foo:29: ERROR: invalid byte sequence for encoding "UTF8": 0x00 HINT: This error can also happen if the byte sequence does not match the encoding …

5
不完整的mysqldump
我正在尝试运行mysqldump来创建数据库快照,并且发现它会在途中随机停止,而不会报告任何错误。我的数据库相对较小(大约100MB),并且正在使用InnoDB。 我像这样运行它: mysqldump --force --single-transaction --quick --user myuser --password=mypass -h mydatabasehost mydb > /tmp/snapshot.sql 检查退出代码报告0。 我的版本是:用于redhat-linux-gnu(i386)的mysqldump Ver 10.13 Distrib 5.1.52 我见过一些类似的帖子,甚至见过正式的错误报告,但似乎都没有解决方案。 如何获取mysqldump来拍摄完整的数据库快照? 编辑:我的数据库当前位于Amazon的RDS上。

2
如何记录mysqldump的详细输出?
通常,您可以像这样保存Linux命令的详细输出: # command > output.txt 但是,当您使用诸如之类的命令时mysqldump,该>选项会将数据库表的转储输出到所需的文件: # mysqldump --username=whatever --password=whatever -h localhost database > dump.sql 如果将-v(详细)选项添加到中mysqldump,它将输出有关该命令正在执行的帮助信息。由于该>选项用于将数据库表信息输出到文件,因此如何将这些详细输出保存到文件中? 更具体地说,我将一个数据库的输出转储到另一个数据库中,如下所示: mysqldump -alv -h 123.123.123.123 --user=username --password=p@ssw0rd --add-drop-table databasename | mysql --user=username --password=p@ssw0rd -h localhost localdatabase 我尝试了以下操作,但最终输出文件为空 mysqldump -alv -h 123.123.123.123 --user =用户名--password = p @ ssw0rd --add-drop-table数据库名| mysql --user =用户名--password = p @ …

1
MySqlDump的DISABLE KEYS对导入无效
我对我之前关于Inno-Tables的导入速度的问题有一个后续问题(惊奇!)。 方案 我尝试在合理的时间内在本地开发计算机上导入一些big *数据库转储。我们KEY在表上附加了许多s,这些表原来是瓶颈,但对于我们的实时系统仍然很重要。 在问完上述问题后,我的方法是KEY ...从转储,导入和重新添加键中删除语句。 但是,我经常发现自己正在编辑当前的转储以将其导入本地,并且偶然发现了这些有趣的“注释”(- disable/enable keys行) -- -- Dumping data for table `monster` -- LOCK TABLES `monster` WRITE; /*!40000 ALTER TABLE `monster` DISABLE KEYS */; INSERT … INSERT … INSERT /*!40000 ALTER TABLE `monster` ENABLE KEYS */; UNLOCK TABLES; 但实际上,这些“注释”是有条件的MySql语句 这对我来说是个新闻,但好的,鉴于输出形式mysql --version对我来说一切正常: mysql Ver 14.14 Distrib 5.5.38, …


1
在繁忙的主从复制系统上恢复单个mysql数据库
在繁忙的复制系统中寻找一种策略或工具来将单个数据库恢复到某个时间点。 我有12个数据库以主从复制配置在2个MySQL 5.0.77服务器上运行。每天对只读从属服务器进行一次完全转储,并且有可用的增量SQL转储,这些备份不在现场并监视复制状态。 编辑:表是InnoDB和myISAM的混合,因此引擎特定的解决方案不可用。 因此,考虑到主服务器完全故障,我可以中断复制并升级从服务器,也可以选择重建新服务器并从越过FULL备份进行配置,然后应用每小时从从服务器获取的差异。 但是,我担心如何处理部分故障或单个数据库的故障。我可以想到两种可能的情况; 例如,数据库7损坏,继续处理一些请求,直到有人注意到它已损坏,或者来自日志文件的警报... 某些查询,例如放置数据库,放置表,“更新位置...”类型的查询,将使单个数据库或其中的某些子集失效。 目前,我有一堆完整的转储文件,例如FULL- $ DATE-all-databases.sql.gz文件,以及可以应用于DIFF- $ DATE-all-databases.sql.gz的差异文件 要将数据库7恢复到某个时间点,将需要通过FULL和DIFF文件进行grep,并手动应用该sql。 为了使能够恢复到以前的DIFF转储到master数据库之一的状态,我应该如何进行? 我是否需要备份到单个数据库文件,即 mysqldump --databases "database1" | gzip > database1.sql.gz mysqldump --databases "database2" | gzip > database2.sql.gz mysqldump --databases "database3" | gzip > database3.sql.gz 而不是.. mysqldump --master-data --lock--all-databases --all-databases | gzip > all-databases.sql.gz 如果我要查找单独的mysqldump文件,那么主数据二进制日志会如何处理,我甚至应该为主服务器恢复转储设置--master-data吗?

4
mysqldump命令在哪里存储备份的数据库?
我正在尝试使用mysqldump命令通过Ubuntu中的终端备份数据库,并且成功。将备份的数据库放在哪里? 我这样运行命令: $ mysqldump -h localhost -u username - p database_name > back_up_db.sql 但不知道back_up_db.sql存储在哪里。
10 mysqldump  ubuntu 

3
mysqldump --single-transaction,但是更新查询正在等待备份
如果我使用mysqldump --single-transaction,根据文档,它应该使用读锁刷新表以获取一致的状态,然后启动事务,并且没有编写者在等待。 但是,昨晚我遇到了以下情况: 摘录自show full processlist: 数百个... Command: Query Time: 291 State: Waiting for table flush Info: insert into db_external_notification..... 然后这个: Command: Query Time: 1204 State: Sending data Info: SELECT /*!40001 SQL_NO_CACHE */ * FROM `db_external_notification` 其余线程处于睡眠状态 有谁知道这些插入物还在等什么?我没有看到任何FLUSH表或DDL或手册中提到的任何可能导致查询等待的内容。 完整的mysqldump命令 mysqldump --quick --add-drop-table --single-transaction --master-data=2 -uxx -pxx dbname 我想--quick在这里是多余的,可能是以前的遗留物,这个脚本很旧,但也不会给您带来任何伤害


1
MySQL Dump Restore-如何保留注释
因此,我将复杂的MySQL转储作为备份。不幸的是,该备份非常复杂,我们使用了邪恶的触发器。 我们的某些恶意触发器的注释行以#字符开头。 当我备份数据库时,结果转储保存#行。问题是当我执行还原时。以#开头的行被空行替换。 因此,我正在寻找一种以英镑开头的行恢复转储的方法。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.