mysqldump -u root -p db_name > backup.sql mysql -u root -p db_name < backup.
时间: 2024-02-11 16:07:02 浏览: 68
sql 这两个命令是用来进行 MySQL 数据库备份和恢复的。其中,`mysqldump` 命令用于将指定的数据库导出为 SQL 格式的备份文件,而`mysql` 命令则用于将备份文件中的数据恢复到指定的数据库中。
具体来说,`mysqldump` 命令用法如下:
```
mysqldump -u username -p password database_name > backup.sql
```
其中,`username` 和 `password` 分别为 MySQL 数据库的用户名和密码,`database_name` 为要备份的数据库名称,`backup.sql` 则为备份文件的保存路径和文件名。
而`mysql` 命令用法如下:
```
mysql -u username -p password database_name < backup.sql
```
其中,`username` 和 `password` 分别为 MySQL 数据库的用户名和密码,`database_name` 为要恢复数据的数据库名称,`backup.sql` 则为备份文件的路径和文件名。
需要注意的是,执行这两个命令时需要在命令行中输入相应的密码,或者将密码写入到一个配置文件中。如果是在生产环境中进行数据库备份和恢复,建议使用加密的方式来存储密码,以保证数据库的安全性。
相关问题
数据库数据备份-mysqldump
mysqldump是MySQL数据库备份工具,可以将MySQL数据库备份成SQL文件,方便数据的迁移和备份。以下是mysqldump备份数据库的方法:
1.备份单个数据库
```shell
mysqldump -uroot -p db_name > /backup/mysqldump/db_name.sql
```
其中,-uroot表示使用root用户登录MySQL,-p表示需要输入密码,db_name是需要备份的数据库名,>表示将备份数据输出到指定文件中。
2.备份多个数据库
```shell
mysqldump -uroot -p --databases db_name1 db_name2 db_name3 > /backup/mysqldump/db_names.sql
```
其中,--databases表示备份多个数据库,db_name1 db_name2 db_name3是需要备份的数据库名,>表示将备份数据输出到指定文件中。
3.备份所有数据库
```shell
mysqldump -uroot -p --all-databases > /backup/mysqldump/all_db.sql
```
其中,--all-databases表示备份所有数据库,>表示将备份数据输出到指定文件中。
请帮我写一个shell脚本,内容为每天凌晨2点备份mysql数据库,库名分别为dt,xxl-job,sdsf并通过gzip进行压缩,其中数据库目录为/iflytek/data/mysql,备份目录为/iflytek/backup,备份后的文件保留5天。
好的,以下是一个实现您需求的Shell脚本,您可以根据需要进行调整:
```bash
#!/bin/bash
# 数据库目录
DB_DIR="/iflytek/data/mysql"
# 备份目录
BACKUP_DIR="/iflytek/backup"
# 要备份的库名
DB_NAMES=("dt" "xxl-job" "sdsf")
# 备份文件名前缀
BACKUP_PREFIX="mysql_backup_"
# 备份文件保留天数
BACKUP_DAYS=5
# 获取当前日期
DATE=$(date +%Y%m%d)
# 创建备份目录
if [ ! -d "$BACKUP_DIR" ]; then
mkdir -p "$BACKUP_DIR"
fi
# 遍历要备份的库名
for db_name in "${DB_NAMES[@]}"; do
# 备份文件名
backup_file="$BACKUP_PREFIX$db_name"_"$DATE.sql.gz"
# 备份命令
backup_cmd="mysqldump -uroot -pPASSWORD $db_name | gzip > $BACKUP_DIR/$backup_file"
# 执行备份命令
eval $backup_cmd
# 删除过期备份文件
find $BACKUP_DIR -name "$BACKUP_PREFIX$db_name*.sql.gz" -type f -mtime +$BACKUP_DAYS -delete
done
exit 0
```
该脚本将遍历 `$DB_NAMES` 数组中的库名,使用 `mysqldump` 命令备份数据库,并将备份结果使用 `gzip` 进行压缩。备份文件名将以 `$BACKUP_PREFIX` 开头,后面跟着库名和日期。备份文件将保存在 `$BACKUP_DIR` 目录下,过期的备份文件将被删除。脚本需要将 `PASSWORD` 改为实际的 MySQL 密码。
您可以将该脚本保存为例如 `backup_mysql.sh`,并创建一个 cron job,在每天凌晨2点运行该脚本。可以使用 `crontab -e` 命令编辑 cron job 配置文件,将以下行添加到文件的底部:
```
0 2 * * * /path/to/backup_mysql.sh
```
其中 `/path/to/backup_mysql.sh` 是脚本的绝对路径。这将使脚本每天凌晨2点运行一次。
阅读全文