繁体   English   中英

从MySQL数据库中转储表?

[英]Dump tables from database in mysql?

如何将数据库中的每个表转储到具有该表名的单独文件中?

您可能想查看以下文章中建议的shell脚本:

脚本:

#!/bin/bash
db=$1
if [ "$db" = "" ]; then
echo "Usage: $0 db_name"
exit 1
fi
mkdir $$
cd $$
clear
for table in `mysql $db -e 'show tables' | egrep -v 'Tables_in_' `; do
echo "Dumping $table"
mysqldump --opt -Q $db $table > $table.sql
done
if [ "$table" = "" ]; then
echo "No tables found in db: $db"
fi

这是一个Linux命令行,用于将YOURDATABASENAME所有表备份到特定路径中的单独文件中:

您将必须用适当的值替换YOURDATABASENAMEYOURPATH

for I in $(mysql --database=YOURDATABASENAME -e 'show tables' -s --skip-column-names); do mysqldump YOURDATABASENAME $I | gzip > "/YOURPATH/YOURDATABASENAME/$I.sql.gz"; done

我将此作为计划的cron作业来每天备份所有表。

注意:如果从Linux命令行使用它,则必须将具有全局特权的用户添加到YOURUSERNAME@localhost的数据库中,而无需输入密码。 否则,您将必须按如下所示向脚本添加用户和密码选项,但这将需要为每个表输入密码!

 for I in $(mysql -u MYSQLUSERNAME -p --database=YOURDATABASENAME -e 'show tables' -s --skip-column-names); do mysqldump -u MYSQLUSERNAME -p YOURDATABASENAME $I | gzip > "/YOURPATH/YOURDATABASENAME/$I.sql.gz"; done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM