国外设计欣赏网站 - DOOOOR.com

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

[Drupal教程] Drupal:数据库还原通过命令行

[复制链接]
发表于 3-13-2012 18:18 | 显示全部楼层 |阅读模式
大多数网站的更新没有发生任何事件发生,你开始之前,数据库转储时,成功的,可以被丢弃或归档。然而,偶尔的事情不要去计划,当发生这种情况往往不是必须恢复数据库的备份,而调查到什么地方出了错。
重要事项:更新前恢复备份之前,你必须确保完全清空数据库。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=&quot;mysql -h HOST -u USERNAME -pPASSWORD -D DB_NAME&quot;<br />
% u. a; S, B8 O& X( M+ g$MYSQL -BNe &quot;show tables&quot; | awk &#39;{print &quot;set foreign_key_checks=0; drop table `&quot; $1 &quot;`;&quot;}&#39; | $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

|2011-2026-版权声明|平台(网站)公约|DOOOOR 设计网 ( 吉ICP备2022003869号 )

GMT+8, 3-20-2025 09:45 , Processed in 0.422853 second(s), 61 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表