MySQL数据库备份与还原
数据库备份也叫SQL数据备份,备份的结果都是SQL指令。
在MySQL中专门提供了一个用于数据库备份的SQL客户端:mysqldump.exe(MySql document copy),sql备份是一种MySQL非常常见的备份与还原方式,SQL备份不只是备份数据,还备份对应的SQL指令(表结构),即便是数据库遭到了毁灭性的破坏(数据库被删除),那么利用SQL备份依然可以实现数据还原。
注意:
SQL备份因为需要备份结构,因此产生的备份文件特别大,因此不适合特大型的数据备份,也不适合数据变换频繁新数据库备份。
SQL备份用到的是专门的备份客户端,因此还没于数据库服务器进行连接。
数据库备份基本语法:
mysqldump/mysqldump.exe -hPuP 数据库名称 【表1,表2.......】 > 备份文件地址
可以理解为:使用备份客户端 对 指定的用户中的 数据库、数据库表进行备份 到 指定的备份文件地址上。
备份可以有三种形式:
1.整库备份(只需要提供数据库的名字)
mysqldump -hlocalhost -p3306 -uroot -p123456 school > C:\Users\hasee\Desktop\数据库备份测试1
理解:为将root用户中的数据库school备份到C盘桌面上并且以(数据库备份测试1)这个作为文件名。
2.单表备份
mysqldump -hlocalhost -p3306 -uroot -p123456 school my_date> C:\Users\hasee\Desktop\数据库备份测试2.sql
3.多表备份
mysqldump -hlocalhost -p3306 -uroot -p123456 school my_date my_int> C:\Users\hasee\Desktop\数据库备份测试3.sql
查看SQL备份文件中的具体内容:在前面我们说过数据库备份实际上就是一些SQL指令。
数据还原
MySQL提供了多种方法来实现数据的还原:两种
MySQLdump 备份的数据中没有关于数据库本身的操作,都是针对表级别的操作,当进行数据还原,
必须指定数据库。
1.利用mysql.exe客户端,在没有登录之前,可以直接用该客户端进行数据还原。
mysql.exe -hpup 数据库 < 文件位置
还原数据
mysql -uroot -p123456 school < C:\Users\hasee\Desktop\数据库备份测试1
可以理解为:将指定的备份文件 还原到 root用户的school数据库中。
2.在SQL指令,提供了一种导入SQL指令的方式。
Source SQL文件位置;// 必须先进入到对应的数据库。
在这里可能出现文件导入问题
原因:
sql文件路径有中文或者空格(参考资料中路径名有空格)反斜杠。
解决方法:
将中文名字修改为英文
source C:/Users/hasee/Desktop/lixiaochi.sql;
3.人为操作,打开备份文件,复制所有SQL指令,然后到MySQL.exe客户端中去粘贴执行。
直接复制粘贴,就可以了。