怎么备份和还原mysql数据库

怎么备份和还原mysql数据库,第1张

备份数据库

使用mysqldump命令备份数据库

还原数据库

1、使用mysql命令还原数据库

将game_backup.sql 还原至 game 数据库:

2、使用source命令还原数据库

如果数据库过大,建议可以使用source命令

Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的 *** 作,下面为大家分享一下 *** 作的常用的命令。

一、备份命令

1、备份MySQL数据库的命令

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

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

2、备份MySQL数据库为带删除表的格式

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

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

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

3、直接将MySQL数据库压缩备份

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump-hhostname-uusername-ppassword databasename|gzip>backupfile.sql.gz

4、备份MySQL数据库某个(些)表

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

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

5、同时备份多个MySQL数据库

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump-hhostname-uusername-ppassword –databases databasename1 databasename2 databasename3>multibackupfile.sql

6、仅仅备份数据库结构

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump –no-data –databases databasename1 databasename2 databasename3>structurebackupfile.sql

7、备份服务器上所有数据库

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump –all-databases>allbackupfile.sql

二、还原命令

1、还原MySQL数据库的命令

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysql-hhostname-uusername-ppassword databasename<backupfile.sql

2、还原压缩的MySQL数据库

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->gunzip<backupfile.sql.gz|mysql-uusername-ppassword databasename

3、将数据库转移到新服务器

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump-uusername-ppassword databasename|mysql –host=*.*.*.*-C databasename

总结

做好数据备份和还原,定好合适的备份策略,这是一个DBA所做事情的一小部分,万事开头难,就从现在开始吧!

打开mysql的bin log功能:

对于mysql也是支持增量备份,但要打开mysql的bin log功能。

我们修改mysql的配置文件。linux是/etc/my.cnf,windows是mysql的安装目录/my.ini

我们在[mysqld]下面加上log-bin一行代码,如下面。

[mysqld]

log-bin=mysql-bin

复制代码

加完后重起mysql即可。

某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了bin-log,之后只好把整个日志的记录拿回来本地进行恢复。

之后自己也做了一个简单的测试,对数据进行恢复,具体如下:

1、新建一个表

CREATE TABLE `lynn`.`sn_test` ( `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , `age` INT( 3 ) NOT NULL ) ENGINE = MYISAM

2、插入多条数据

INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn1', '1')

INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn2', '2')

INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn3', '3')

INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn4', '4')

3、查看数据并删除

mysql>select * from sn_test

+-------+-----+

| name | age |

+---------+---+

| lynn1 | 1 |

| lynn2 | 2 |

| lynn3 | 3 |

| lynn4 | 4 |

+---------+-----+

4 rows in set (0.00 sec)

mysql>delete from sn_test

Query OK, 4 rows affected (0.00 sec)

mysql>select * from sn_test

Empty set (0.00 sec)

4、mysqlbinlog恢复数据

mysqlbinlog mysql-bin.000006 >1.sql

查看1.txt里面数据插入的纪录,把删除之前的数据进行恢复

mysqlbinlog mysql-bin.000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123

重新登录,查看数据,OK,已经成功恢复了

对于数据库 *** 作,应该注意如下问题:

1、要常备份(全备,增量备份),出了问题可以最快恢复数据;

2、 *** 作数据库前,要把需要 *** 作的数据库或者表dump出来;

3、需要把bin-log打开,就算没有做上面的两步,也可以通过日志恢复数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7319982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存