mysqldump未复制所有数据

mysqldump未复制所有数据,mysql,drupal,drupal-7,mysqldump,Mysql,Drupal,Drupal 7,Mysqldump,我有一个MySQL数据库,它是我的drupal网站的后端,我正在进行drupal升级,在升级之前,我需要复制数据库 这确实创建了一个名为ts_prod_bak的新数据库,并用ts_prod的数据填充该数据库,但它并没有复制所有数据。我看到一些在新数据库中创建的表,cache_*的大小与源数据库不同。因此,我对我的备份/副本没有信心 如何对源数据库进行精确复制,并通过将其恢复到另一个数据库进行验证?这是意料之中的。您的新db文件没有原始db文件所具有的剩余“垃圾”。基本上你已经对数据库进行了碎片

我有一个MySQL数据库,它是我的drupal网站的后端,我正在进行drupal升级,在升级之前,我需要复制数据库

这确实创建了一个名为ts_prod_bak的新数据库,并用ts_prod的数据填充该数据库,但它并没有复制所有数据。我看到一些在新数据库中创建的表,cache_*的大小与源数据库不同。因此,我对我的备份/副本没有信心


如何对源数据库进行精确复制,并通过将其恢复到另一个数据库进行验证?

这是意料之中的。您的新db文件没有原始db文件所具有的剩余“垃圾”。基本上你已经对数据库进行了碎片整理,这使得所有的文件大小都不同。如果我在源代码上使用optomize DB,它会清除垃圾吗?或者我该怎么做才能使源和备份相等?不知道优化运行有多好。它可能会在某种程度上对事物进行碎片整理,但如果它将事物降到“全新的开箱即用”状态。。。不知道。mysqldump会转储数据库中的所有内容,除非您明确告诉它不要这样做。您可以非常确定转储的是数据库中的内容。您是否考虑过使用备份和迁移Drupal模块进行数据库备份?
mysqladmin create ts_prod_bak -u root --password=XXXXXX && \
  mysqldump -u root --password=XXXXXX ts_prod | mysql -u root --password=XXXXXX -h localhost ts_prod_bak