MySQL备份和恢复数据
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语句有差别,因此在迁移时必须对这些不同之处的语句进行映射处理。
也可以使用它们导出数据
上一篇: Nginx访问图片403错误
下一篇: vue 项目 web端如何实现天气预报