大多数网站的更新没有发生任何事件发生,你开始之前,数据库转储时,成功的,可以被丢弃或归档。然而,偶尔的事情不要去计划,当发生这种情况往往不是必须恢复数据库的备份,而调查到什么地方出了错。 重要事项:更新前恢复备份之前,你必须确保完全清空数据库。 Drupal的更新可能会重命名表或表中的数据重新组合成新的表,这些表通常不会被删除,当你恢复数据库备份。(例如,虽然mysqldump的增加DROP / CREATE缺省转储的表行,它不仅表,它知道。)如果没有被删除,这些“新”表将导致错误在下一次尝试更新,如果忽略这些错误,因为事情开始出现工作,你可能会遇到的问题,由于重复数据,旧数据或只是普通的数据库损坏后。 清空数据库最简单的办法就是删除数据库,创建一个新的数据库: mysql -h HOST -u USERNAME -pPASSWORD- P$ W0 l2 y# w8 u% j
drop database `DB_NAME`; o, f, |; p, l* E/ ^2 u) K
create database `DB_NAME` charset utf8;
; A6 e( i: y8 \( x: m1 ?quit 如果你没有通过shell创建数据库的权限,你必须手动删除所有的数据库表,前提是你已经备份了数据。(填写适当的第一行) MYSQL="mysql -h HOST -u USERNAME -pPASSWORD -D DB_NAME"<br />
% u. a; S, B8 O& X( M+ g$MYSQL -BNe "show tables" | awk '{print "set foreign_key_checks=0; drop table `" $1 "`;"}' | $MYSQL<br />. \- I9 x1 |- n- {: k8 y/ V
unset MYSQL 如果是共享数据库,你必须使用自己的表前缀。 从mysql dump恢复数据一旦你确保所有数据库中的表已被删除,你可以恢复你的数据库备份使用: mysql -h HOST -u USERNAME -pPASSWORD < your-db-dump.sql 注意:--add-drop-database 不推荐使用--add-drop-database 的缘由是你需要使用 --database 参数,这个参数讲参入 use database 行到drump中,基本是硬编码。如果你有最佳方法,你需要一个临时网站来测试,然后才能改变线上的环境。你的2个数据库使用不同的名字。使用此选项可以改变目标数据库,一旦子啊发生问题,只是覆盖了错误的数据库。; e8 J8 L4 H# K
. z) N2 k [0 @感谢 guo54581706 !
4 d6 f I) E! V/ }% e# |2 m/ L( M7 _+ [0 M
|