我是南城余!阿里云开发者平台专家博士证书获得者!
欢迎关注我的博客!一同成长!
一名从事运维开发的worker,记录分享学习。
专注于AI,运维开发,windows Linux 系统领域的分享!
知识库链接:
百度网盘下载链接:
链接: 百度网盘-链接不存在
提取码: 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='\"'