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

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

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

[复制链接]
发表于 3-13-2012 18:18 | 显示全部楼层 |阅读模式
大多数网站的更新没有发生任何事件发生,你开始之前,数据库转储时,成功的,可以被丢弃或归档。然而,偶尔的事情不要去计划,当发生这种情况往往不是必须恢复数据库的备份,而调查到什么地方出了错。
重要事项:更新前恢复备份之前,你必须确保完全清空数据库。Drupal的更新可能会重命名表或表中的数据重新组合成新的表,这些表通常不会被删除,当你恢复数据库备份。(例如,虽然mysqldump的增加DROP / CREATE缺省转储的表行,它不仅表,它知道。)如果没有被删除,这些“新”表将导致错误在下一次尝试更新,如果忽略这些错误,因为事情开始出现工作,你可能会遇到的问题,由于重复数据,旧数据或只是普通的数据库损坏后。
清空数据库
最简单的办法就是删除数据库,创建一个新的数据库:
mysql -h HOST -u USERNAME -pPASSWORD2 C* O( T! `* e# Y; W# R( C
drop database `DB_NAME`;3 N% V& n: ]( n/ i4 q# ]- {9 G
create database `DB_NAME` charset utf8;! ?' \: p. A1 g
quit
如果你没有通过shell创建数据库的权限,你必须手动删除所有的数据库表,前提是你已经备份了数据。(填写适当的第一行)
MYSQL=&quot;mysql -h HOST -u USERNAME -pPASSWORD -D DB_NAME&quot;<br />! V+ s1 N; g" o5 `. `7 H
$MYSQL -BNe &quot;show tables&quot; | awk &#39;{print &quot;set foreign_key_checks=0; drop table `&quot; $1 &quot;`;&quot;}&#39; | $MYSQL<br />
4 \% K* t2 J, p) y6 d2 wunset MYSQL
如果是共享数据库,你必须使用自己的表前缀。
从mysql dump恢复数据
一旦你确保所有数据库中的表已被删除,你可以恢复你的数据库备份使用:
mysql -h HOST -u USERNAME -pPASSWORD < your-db-dump.sql
注意:--add-drop-database 不推荐使用--add-drop-database 的缘由是你需要使用 --database 参数,这个参数讲参入  use database 行到drump中,基本是硬编码。如果你有最佳方法,你需要一个临时网站来测试,然后才能改变线上的环境。你的2个数据库使用不同的名字。使用此选项可以改变目标数据库,一旦子啊发生问题,只是覆盖了错误的数据库。
' ?5 P: @. B7 C1 ^
7 |' }, q+ i: s3 w8 {8 O7 X; }
感谢 guo54581706 !

* ^! {0 _1 ^' i8 ^- Y* t; D- L
0 X! V3 F0 \! a) g

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

GMT+8, 5-2-2025 04:50 , Processed in 0.653216 second(s), 61 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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