知识库链接:
备份与恢复 · 语雀
百度网盘下载链接:
链接: 百度网盘-链接不存在
提取码: xiqy
————————————————
1. 物理备份
备份数据库问价,转储数据库物理文件到某一目录
可借助MySQL中的xtrabackup
工具进行物理备份
2. 逻辑备份
就是备份sql语句 速度较慢
常用逻辑备份工具为mysqldump
mysqldump -uroot -p xxx数据库名称>/var/xxx目录/.sql或者txt文件 --绝对路径写法 mysqldump -uroot -p atguigudb>/var/lib/mysql/backup/atguigu.sql --备份全部数据库 mysqldump -uroot -p --all-databases > all_database.sql --相对路径写法 mysqldump -uroot -p --A > all_database.sql --备份部分数据库 mysqldump -uroot -p --databases atguigudb2 atguigudb3 > part_databases.sql --备份部分表 mysqldump -uroot -p atguigudb account student > part_tables.sql --忽略数据库中的部分表 mysqldump -uroot -p atguigu --ignore-table=atguigu.student >atguigudb_no_student.sql --通过下方指令可查看指定文件中有无student的表结构 grep "student" atguigudb_no_student.sql --备份中包含存储过程、函数、事件 --默认存储过程、函数、事件不会被备份 可借助-R -E 参数备份 mysqldump -uroot -p -R -E --all-databases > func_pro.sql mysqldump -uroot -p -R -E --databases atguigu > func_pro.sql --备份部分数据库存储过程、函数、事件
3. 数据恢复
数据库的恢复是建立在有备份成功的文件(.sql文件)下,才可以恢复数据
--恢复单库 mysql -uroot -p 数据库名称<sql文件 mysql -uroot -p atguigudb<atguigu.sql --全量备份恢复 mysql -uroot -p <all.sql --从全量备份中恢复单库 sed -n '/^-- Current Database: `atguigu`/',/^-- Current Database: '/p' all_database.sql > atguigu.sql -- 分离完成后再导入atguigu.sql即可恢复单个库
4. 表的导入与导出
-------------------------------导出------------------ --------------1.sql语句 --1.查看 mysql对导出目录的权限 show global variables like '%secure%'; --2. 导出 select * from account into outfile "/var/lib/mysql-files/account1.txt" --查看导出数据 cat /var/lib/mysql-files/account1.tx ------------2.mysqldump 同时导出表结构.sql与表数据.txt mysqldump -uroot -p -T "/var/lib/mysql-files/" atguigudb account -------------------------------导入------------------ LOAD DATA infile '/var/lib/mysql-files/account1.txt' into table atguigudb.account; mysqlimport -uroot -p atguigu '/var/lib/mysql-files/account1.txt' --fields-terminated-by=',' --fields-optionally-enclosed-by='\"'