MySQL数据库备份和还原


打开cmd命令行,一定不是mysql的命令行,我第一次就错在这个地方,郁闷了很久

备份MySQL数据库的命令

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

例如:

1.cd D:\ProgramFiles\MySQL\MySQL Server 5.5\bin

2.mysqldump –uroot –p123456 –h 127.0.0.1 test > D:/test.sql

3.说明:-p和123456密码之间一定不能有空格,做了测试,它好像需要你再次输入密码,输完密码后有说找不到XX表;为了避免出现错误,别闲着蛋疼没事加空格之类的,直接都不要空格,来得干脆

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

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

直接将MySQL数据库压缩备份

mysqldump -hhostname-uusername -ppassword databasename | gzip > backupfile.sql.gz[估计需要在linux,猜的,没试过]

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

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

同时备份多个MySQL数据库

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

仅仅备份数据库结构

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

备份服务器上所有数据库

mysqldump–all-databases > all_backupfile.sql

还原MySQL数据库的命令

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

例如:

第一种方式:

1.  打开window cmd

2.  切换到mysql安装目录的bin下

3.  mysql –uroot –p123456 –h 127.0.0.1 test <D:/test_backup.sql

4.  说明:如果没有写-h 127.0.0.1,则默认本机;在备份时这个数据库必须存在,否则可能会出现导不进去的情况

第二种方式:

1.  打开mysql cmd

2.  source d:/test.sql

还原压缩的MySQL数据库

gunzip <backupfile.sql.gz | mysql -uusername -ppassword databasename [这个命令估计在linux下执行,没试过]

将数据库转移到新服务器

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

这个文章网上太多了,google一下几十个,没有贴原地址。亲自做了实验,也算是自己的东西了吧,留个备份,以便下次忘了。

相关内容