gpt4 book ai didi

bash - mysqldump 与 db 在一个单独的文件中

转载 作者:IT老高 更新时间:2023-10-28 23:44:52 27 4
gpt4 key购买 nike

我正在编写一个单行命令,将所有数据库备份到它们各自的名称中,而不是使用在一个 sql 中全部转储。

例如:db1 保存到 db1.sql,db2 保存到 db2.sql

到目前为止,我已经收集了以下命令来检索所有数据库。

mysql -uuname -ppwd -e 'show databases' | grep -v 'Database'

我打算用 awk 管道来做类似的事情

awk '{mysqldump -uuname -ppwd $1 > $1.sql}'

但这不起作用。

我是 bash 新手,所以我的想法可能是错误的。
我应该怎么做才能使其以各自的名称导出数据库?

更新:
好的,必须最终设法通过以下提示使其正常工作。
这是最终的脚本

# replace [] with your own config
# replace own dir to save
# echo doesn't work. hmm...

mysql -u[uname] -p'[pwd]' -e "show databases" \
| grep -Ev 'Database|information_schema' \
| while read dbname; \
do \
echo 'Dumping $dbname' \
mysqldump -u[uanme] -p'[pwd]' $dbname > ~/db_backup/$dbname.sql;\
done

的 echo 部分不起作用。

最佳答案

mysql -uroot -N -e 'show databases' | while read dbname; do mysqldump -uroot --complete-insert --some-other-options "$dbname" > "$dbname".sql; done

关于bash - mysqldump 与 db 在一个单独的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10867520/

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