MySQL 备份 --- mysqldump
一、承上启下
1. MySQL安装
https://www.cnblogs.com/eagle6688/p/8975090.html
2. Crontab
https://www.cnblogs.com/eagle6688/p/17019244.html
二、备份
1. 分类
MySQL分为物理备份和逻辑备份,物理备份是对数据库文件进行备份,目前该功能仅在Enterprise版支持;逻辑备份是对数据库的DDL和DML脚本进行备份,主要使用mysqldump工具来实现,后者是community所支持的。
2. mysqldump
https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#mysqldump-option-summary
(1) 备份单个数据库
mysqldump -h [database_hostname] -P [database_port] -u [database_username] –p [database_password] [database_name] [tablename] > [database_name-$(date +%Y%m%d).sql]
-h [database_hostname]:MySQL实例的主机名;
-P [database_port]:MySQL实例的端口号;
-u [database_username]:连接MySQL数据库的用户名;
-p [database_password]:连接MySQL数据库的用户密码;
[database_name]:需要备份的数据库名称;
[tablename]:需要备份的数据库表名,这是一个可选参数;
>:生成备份的指示符;
[database_backup_file.sql]:需要存储的Dump文件的路径和名称。
还有另外一种指定密码的方式:
mysqldump -u [database_username] [--password="database_password"] [database_name] > [database_name-$(date +%Y%m%d).sql]
(2) 备份多个数据库
mysqldump -u [database_username] -p [database_password] --databases [database_name1] [database_name2] > database_name-$(date +%Y%m%d).sql
指定密码:
mysqldump -u [database_username] [--password="database_password"] --databases [database_name1] [database_name2] > database_name-$(date +%Y%m%d).sql
(3) 备份所有数据库
mysqldump -u [database_username] -p --all-databases > database_name-$(date +%Y%m%d).sql
指定密码:
mysqldump --all-databases -u [database_username] [--password="database_password"] > database_name-$(date +%Y%m%d).sql
(4) 备份到压缩文件
mysqldump database_name -u database_username -p | gzip > database_name-$(date +%Y%m%d).sql.gz