MySql数据库的备份与恢复

一、mysql数据备份

1、以txt文件的形式导出数据进行备份:
SELECT * FROM jzstudents into outfile ‘D:/p3.txt’ FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\r\n’;
SELECT * FROM sm_student_maininfo into outfile ‘D:/p3.txt’ FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\r\n’;
SELECT * FROM sm_student_maininfo into outfile ‘C:/d.txt’ FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’;
相关设置:
打开C:\ProgramData\MySQL\MySQL Server 5.7下的my.ini文件,修改参数“secure-file-priv”的值。
导出到任意位置:secure-file-priv=
导出到指定位置:secure-file-priv=”D:\pushiji”
禁止导出:secure-file-priv=NULL
在MySQL8.0.16中没有my.ini文件,所以直接从命令行操作。
查看全局变量%secure_file_priv%的值:
show global variables like ‘%secure_file_priv%’;
2、以sql文件进行备份
①备份服务器全部数据库
C:\WINDOWS\system32>mysqldump -u root -p --all-databases >d:\all.sql
Enter password: ******
②备份单个数据库(无需加参数–databases,该参数备份数据库结构)
C:\WINDOWS\system32>mysqldump -u root -p school >d:\d.sql
Enter password: ******
③备份多个数据库(需加参数–databases,该参数备份数据库结构)
C:\WINDOWS\system32>mysqldump -u root -p --databases school mysql >d:\databases.sql
Enter password: ******
④备份某个数据库单个数据表
C:\Users\pushi>mysqldump -u root -p school sm_student_maininfo >D:\table.sql
Enter password: ******
⑤备份某个数据库多个数据表
C:\WINDOWS\system32>mysqldump -u root -p school sm_student_maininfo sm_teacher>D:\tables.sql
Enter password: ******

二、mysql数据恢复

1、导入txt文件数据进行恢复
load data local infile “D:/phone.txt” into table tp fields terminated by ‘,’;
load data local infile “D:/data.txt” into table tpn fields terminated by ‘,’ ignore 1 lines;
load data local infile ‘D:/data.txt’ into table pet lines terminated by ‘\r\n’ ignore 1 lines;
load data infile “D:/data.txt” into table tp fields terminated by ‘,’ ignore 1 lines;
load data infile “D:/data.txt” into table tb_student_enrollment fields terminated by ‘,’ ignore 1 lines;
load data infile “D:/banzhuren.txt” into table tb_banzhr fields terminated by ‘,’ ignore 1 lines;
load data infile “D:/data.txt” into table sm_student_maininfo fields terminated by ‘,’ ignore 1 lines;
load data infile “D:/data1.txt” into table sm_student_maininfo fields terminated by ‘,’ ignore 1 lines;
load data infile “D:/b.txt” into table tb_banzhr fields terminated by ‘,’ ignore 1 lines;
load data infile “D:/teacher.txt” into table sm_teacher fields terminated by ‘,’ ignore 1 lines;
load data infile “D:/test/data.txt” into table questions_answers fields terminated by ‘|’;
如果出现错误,则在配置文件中设置secure-file-priv属性。
secure-file-priv=NULL表示禁止导入,secure-file-priv=表示从任意路径导入。
另外,在mysql8.0.12中需要去掉local,即当前设置下只允许从服务器导入。
2、导入sql文件数据进行恢复
还原单个数据库时要指定恢复的数据库且该数据库存在(因为单个库备份不备份数据库信息,只备份数据库中表的信息),不存在则须手动创建,否则出现错误。
还原多个数据库时,无需指定要还原哪些数据库,因为备份中备份了数据库信息,数据库不存在则自动创建,存在则将其覆盖。
①用mysql命令(无需登录MySQL服务器)
恢复整个数据库
C:\Users\pushiji>mysql -uroot -p <D:\all.sql
Enter password: ******
恢复单个数据库(若在备份时无参数–databases,则欲恢复的数据库必须存在,否则出现错误)
C:\Users\pushiji>mysql -uroot -p <D:\databases.sql
Enter password: ******
恢复数据库表时不宜用这个命令,因为用这个命令时无需登录数据库服务器,于是无法选择相应的数据库,所以会显示“ERROR 1046 (3D000) at line 22: No database selected”错误,不过备份文件里自己加上选择数据库的命令(use school)的话,用这个命令也可以恢复。
C:\WINDOWS\system32>mysql -uroot -p <D:\rsyf\backup\tables_bankup_se_20190531_143407.sql
Enter password: ******
②用source命令(需要把当前的登陆退出后重新登陆MySQL服务器)
恢复整个数据库
mysql> source D:\all.sql
恢复单个数据库(若在备份时无参数–databases,则欲恢复的数据库必须存在,否则出现错误)
mysql> source D:\databaseNames.sql
恢复数据库表(需选择数据库,而表存在不存在都可以)
use databaseName
mysql> source D:\rsyf\backup\tables_bankup_se_20190531_143407.sql

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值