欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL备份和恢复数据

程序员文章站 2022-05-29 21:29:53
...

1.使用mysqldump命令备份数据库
mysqldump命令是MySQL提供的实现数据库备份的工具,再Windows终端执行。该文件存放再MySQL安装目录的bin文件夹下。
mysqldump是采用SQL级别的备份机制,它将数据表导出成SQL脚本文件,该文件包含多个create和insert语句,使用这些语句可以重新创建表和插入数据。在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。

  • 使用mysqldump备份一个数据库
mysqldump -username -ppassword dbname [tbname1,tbname2] > BackName.sql

其中,username是用户名,password是密码,dbname是数据库名,tbname1、tbname2是表名。BackNmae.sql表示备份文件的输出名称,实际备份时需要在该文件名前添加备份地址的绝对路径。

  • 备份多个数据库
mysqldump -username -ppassword -databases dbname1 dbname2 > BackName.sql

其中databases表示其后可以指定多个数据库名,其它释义同上。

  • 备份所有数据库
mysqldump -uusername -ppassword --all-databases > BackName.sql

其中-all-databases表示用于备份服务器上所有的数据库,其它释义同上。

举例
使用root用户备份bank数据库下的goods表和users表,并将备份好的文件保存到D盘根目录,文件名为db1.sql

mysqldump -uroot -p123456 bank goods users > D:\db1.sql

以记事本打开文件后会发现很多代码,备份文件记录了MySQL的版本、备份的主机名和数据库名。文件中以–开头的是sql注释,/* */是MySQL注释,此外还包含了创建goods表和users表的代码。

2.使用mysql命令恢复数据
对于包含create、insert语句的sql脚本文件,可以使用mysql命令进行数据恢复,其语法如下:

mysql -uusername -ppassword[dbname]<backup.sql

其中dbname是可选参数。如果backup.sql是mysqldump命令创建的包含创建数据库语句的文件,则可以不指定数据库名。
backup.sql表示需要恢复的脚本文件,文件名前面可以加上一个绝对路径。
举例
使用mysql命令将D盘根目录的脚本文件‘db1.sql’还原成数据库数据库bank

mysql -uroot -p123456 bank < D:\db1.sql

3.数据库迁移
在MySQL中,数据迁移主要有三种方式,分别是相同版本的mysql数据之间的迁移,不同版本的迁移,还有不同数据库之间的迁移。

(1)相同版本的mysql数据库之间的迁移

  • 由于基于复制的数据迁移方法不适合InnoDB引擎的表。因此采用mysqldump命令备份,然后mysql命令恢复最佳。

(2)不同版本的mysql数据库之间的迁移

  • 由于版本不同问题,具体方法同上。

(3)不同数据库之间的迁移

  • 不同数据库之间的迁移,是指把MySQL的数据库转移到其它类型的数据库,例如从MySQL迁移到SQL Server等。
  • 迁移之前,需要了解不同数据库的架构,比较它们的差异。不同数据库中定义相同类型的数据库关键字可能会不相同。例如MySQL中ifnull()函数在SQL Server中应写isnull()。另外,数据库厂商并没有完全按照SQL标准来设计数据库系统,导致不同的数据库系统的SQL语句有差别,因此在迁移时必须对这些不同之处的语句进行映射处理。

也可以使用它们导出数据

相关标签: 笔记 mysql