使用 mysqldump 命令来备份MySQL数据库。mysqldump命令是MySQL自带的备份工具,可以将MySQL数据库备份成SQL文件。 mysqldump 是 MySQL 用于转存储数据库的实用程序。它主要产生一个 SQL 脚本,其中包含从头重新创建数据库所必需的命令 CREATE TABLE、INSERT 等。
mysqldump 的运行机制如下:
- 通过命令行参数,mysqldump 确定要备份的数据库和表。
- mysqldump 连接并登录到 MySQL 服务器。
- mysqldump 请求服务器发送所有表的表结构信息,并将其保存在一个或多个 SQL 脚本中。
- mysqldump 请求服务器发送所有表的行数据,并将其保存在一个或多个 SQL 脚本中。
- mysqldump 将所有表的行数据和表结构信息写入到 SQL 脚本文件中。
- mysqldump 将所有表的索引信息保存在一个或多个 SQL 脚本中。
- mysqldump 将所有表的行数据和索引信息写入到 SQL 脚本文件中。
mysqldump 的使用限制:
- 默认情况下,mysqldump 不备份 INFORMATION_SCHEMA、performance_schema 和 sys 库,如果需要备份这些库,需要在命令行上显式指定。
- 备份的过程是串行化的,不支持并行备份。
- 当数据为浮点类型时,会出现精度丢失。
mysqldump 的使用示例:
- 备份整个 MySQL 数据库:
mysqldump -u username -p password database_name > backup_file.sql
其中,username 是数据库用户名,password 是数据库密码,database_name 是要备份的数据库名称,backup_file.sql 是备份文件名。
- 备份指定数据库中的某些表:
mysqldump -u username -p password database_name table1 table2 > backup_file.sql
其中,table1 和 table2 是要备份的表名。
- 备份指定数据库中的所有表:
mysqldump -u username -p password database_name --all-tables > backup_file.sql
以下是一个简单的mysqldump备份脚本示例:
#!/bin/bash
# 备份目录
backup_dir=/data/backup/mysql
# 备份文件名
backup_name=mysql-$(date +%Y%m%d%H%M%S).sql
# MySQL用户名
mysql_user=root
# MySQL密码
mysql_password=123456
# MySQL主机地址
mysql_host=localhost
# 创建备份目录
mkdir -p $backup_dir
# 备份MySQL数据库到SQL文件中
mysqldump -u$mysql_user -p$mysql_password -h$mysql_host --all-databases > $backup_dir/$backup_name
# 删除7天前的备份文件 find $backup_dir -type f -mtime +7 -name "*.sql" -exec rm {} \;
这个脚本会将所有MySQL数据库备份到一个SQL文件中,并将该文件保存到指定的目录中。 此外,它还会删除7天前的备份文件,以避免占用过多磁盘空间。 请注意,这个脚本只是一个简单的示例,你需要根据自己的需求进行修改。
标签:备份,SQL,介绍,mysqldump,MySQL,backup,数据库 From: https://blog.51cto.com/u_15081581/6541697