电玩城打鱼捕鱼-专业24小时上下分

MYSQL数据库备份与恢复,系统崩溃后MySQL数据库恢复手记

七月 4th, 2019  |  电玩城上下分数据库

随着DedeCMS、PHPCMS、帝国、Discuz!、PHPWIND、WordPress等知名web管理系统的普及,Mysql数据库的应用逐渐广泛起来,关于Mysql产生的问题也越来越多,今天帮客之家小编恰巧在無淚之城的博客看到《系统崩溃后MySQL数据库恢复手记》一文,特别转载给大家一起分享,感谢作者的辛苦劳动。

MYSQL数据库备份与恢复

最近这两天,因为之前设计数据库的时候没有注意到有的表是要建在另外一台服务器上面的(测试服务器数据库是分布式的,不同的表可能在不同服务器上)。现在里面已经有很多测试数据了,又不想重新添加一遍。所以就想能不能备份出来,再恢复到目标机器上去。然后昨天的话就折腾了一下,请教同事,上网查资料。这里把用法记录一下。
mysqldump命令:MySQL数据库备份还原
 
一、常用操作:
备份整个数据库
格式:
mysqldump -h主机名  -P端口 -u用户名 -p密码 (–database) 数据库名 >
文件名.sql
mysqldump -h{hostname} -P{port} -u{username} -p{password} {databasename}
> {backupfile.sql}
例如:
 
代码如下:
1
mysqldump -hlocalhost -P3306 -uzhuchao -p123456 db_test >
backfile1.sql
备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
格式:mysqldump -–add-drop-table -u{username} -p{password}
{databasename} > {backfile.sql}
例如:
 
代码如下:
1
mysqldump -–add-drop-table –uzhuchao -p123456 db_test >
backfile2.sql
直接将MySQL数据库压缩备份
格式:mysqldump -h{hostname} -u{username} -p{password} {databasename} |
gzip > {backfile.sql.gz}
例如:
 
代码如下:
1
mysqldump –hlocalhost –uzhuchao –p123456 db_test1 | gzip >
backfile3.sql.gz
备份MySQL数据库某个(些)表
格式:mysqldump -h主机名  -P端口 -u用户名 -p密码 (–tables | –quick)
数据库名 表名1 (表名2 …) > 文件名.sql (括号中的可缺省)。
mysqldump -h{hostname} (-P{port}) -u{user} -p{password} (–tables |
–quick) {databasename} {table1} {table2} > {backfile.sql}
例如:
 
代码如下:
1
2
3
4
mysqldump -hlocalhost -uzhuchao -p123456 db_test tbl_test >
backfile4-1.sql
mysqldump -hlocalhost -P3306 -uzhuchao -p123456 db_test tbl_test >
backfile4-2.sql
mysqldump -hlocalhost -P3306 -uzhuchao -p123456 –quick db_test
tbl_test > backfile4-3.sql
mysqldump -hlocalhost -P3306 -uzhuchao -p123456 –tables db_test
tbl_test1 tbl_test2 > backfile4-4.sql
同时备份多个MySQL数据库
格式:mysqldump -h{hostname} (-P{port}) -u{username} -p{password}
–databases {databasename1} {databasename2} {databasename3} >
multibackfile.sql
例如:
 
代码如下:
1
mysqldump -hlocalhost -uzhuchao -p123456 –databases db_test1 db_test2
db_test3 > multibackfile.sql
仅仅备份数据库结构
格式:mysqldump –no-data –databases {databasename1} {databasename2} >
{structurebackfile.sql}
例如:
 
代码如下:
1
mysqldump –no-data –databases db_test1 db_test2 >
structurebackfile.sql
备份服务器上所有数据库
格式:mysqldump –all-databases > allbackupfile.sql

原文如下:

 

 

 
还原MySQL数据库的命令
格式:mysql -h{hostname} -u{username} -p{password} {databasename} <
{backfile.sql}
例如:
 
代码如下:
1
mysql -hlocalhost -uroot -p123456 db_test4 < back_file1.sql
还原压缩的MySQL数据库
格式:gunzip < {backfile.sql.gz} | mysql –u{username} –p{password}
{databasename}
例如:
 
代码如下:
1
gunzip < backfile.sql.gz | mysql –uzhuchao –p123456 db_test5
将数据库转移到新服务器
mysqldump –u{username} –p{password} {databasename} | mysql
–host=*.*.*.* –C {databasename}
 
二、其他:
1、如果端口为默认的3306时,可省略 -P {端口号} 这一项。
 
2、命令行格式中 { } 中的内容都是变量
主机名 : {hostname}
端   口:{port}    (一般默认3306,可缺省)
用户名:{user} {username} (如root)
密   码:{password}
数据库名 :{databasename}
表   名:{table}  {table1}  {table2}
文件名:{backfile.sql}

作者“石头博客”

创E的服务器在前段时间因为硬件问题彻底崩溃了,得到网络中心的支持将服务器迁移到学校刚刚搭建起来的虚拟化平台上,系统和asp+access数据库的网站因为保存在非系统盘所以在第一时间恢复,但是因为MySQL数据库是安装在系统里面,所以数据就一直没有空去弄它。今天花了一天时间,重装了N次MySQL
Server终于成功将数据库恢复,但是权限问题尚未解决。先记下数据库恢复过程,权限问题稍候再说。

mysqldump -h主机名  -P端口 -u用户名 -p密码 (–database) 数据库名 >
文件名.sql

一开始的做法是在原有系统中将原先保存Data的ibdata1覆盖到新装的MySQL
Data目录里面,但是文件虽然变大,但是数据库并没有回来。参考了文章很多资料后,发现ibdata1只是保存了数据库中是数据,但是数据库的表结构是保存在另外的地方。

 

重新接上原来的硬盘,在C:\Documents and Settings\All Users\Application
Data\MySQL\MySQL Server
5.1\data里面终于找到了原来的数据库结构和表结构文件,还是使用覆盖数据库文件的方式,先停用MySQL,再覆盖,但是之后就再也启动不了MySQL服务了。

备份MySQL数据库的命令

然后尝试重装的时候将数据库的保存目录指定到拷贝出来的Date目录,安装后提示原来有数据文件,但是安装最后的配置就在一直没有成功,换了几次MySQL的版本也不行。

 

最后采取安装后选择性覆盖,将后期自己建立的表文件和ibdata1覆盖后启动成功,终于将数据库文件恢复,但是权限部分没有了。只能自己重建。比较麻烦···

mysqldump -hhostname -uusername -ppassword databasename >
backupfile.sql

最后介绍一下MySQL的备份与恢复

 

MySql的备份可用命令mysqldump ,使用方法很简单,

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

Copy to
Clipboard图片 1引用的内容:[www.bkjia.com]
mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 >路径/备份名.bak;

mysqldump -–add-drop-table -uusername -ppassword databasename >
backupfile.sql

同时也可以是用mysqldump到处数据结构(tablename.sql)和数据(tablename.txt)

  www.2cto.com  

Copy to
Clipboard图片 2引用的内容:[www.bkjia.com]
mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 tablename1 tablename2
> back.sql

mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 –tab 路径 –opt
数据库名.

直接将MySQL数据库压缩备份

标签:

Your Comments

近期评论

    功能


    网站地图xml地图