gpt4 book ai didi

database - mysqldump 将 CREATE 放在 mysqldump 的第一行

转载 作者:行者123 更新时间:2023-11-29 13:18:55 30 4
gpt4 key购买 nike

这是我的完整 bash 脚本:

#!/bin/bash

logs="$HOME/sitedb_backups/log"

mysql_user="user"
mysql_password="pass"

mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump

tbackups="$HOME/sitedb_backups/today"
ybackups="$HOME/sitedb_backups/yesterday"

echo "`date`" > $logs/backups.log

rm $ybackups/* >> $logs/backups.log
mv $tbackups/* $ybackups/ >> $logs/backups.log

databases=`$mysql --user=$mysql_user -p$mysql_password -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema)"`

for db in $databases ; do
$mysqldump --force --opt --user=$mysql_user -p$mysql_password --databases $db | gzip > "$tbackups/$db.gz"
echo -e "\r\nBackup of $db successfull" >> $logs/backups.log
done

mail -s "Your DB backups is ready!" yourmail@gmail.com <<< "Today: "`date`"
DB backups of every site is ready."

exit 0

问题是当我尝试使用 mysql 导入它时,我收到错误 1044 连接到 oldname_db 错误。当我打开 sql 文件时,我注意到第一行 CREATE 命令,因此它尝试使用旧名称创建该数据库。我该如何解决这个问题?

已解决。

在我的情况下使用--databases参数是没有必要的,因为--databases它在sql文件的开头生成CREATE和USE操作,希望它可以帮助别人。

最佳答案

使用mysqldump--no-create-db选项。

来自man mysqldump:

--no-create-db, -n

This option suppresses the CREATE DATABASE statements that are otherwise included in the output if the --databases or --all-databases option is given.

关于database - mysqldump 将 CREATE 放在 mysqldump 的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21115277/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com