我想保留所有MySQL数据库的备份。我有100多个MySQL数据库。我想同时导出所有这些文件,然后再一次将它们全部导入我的MySQL服务器。我该怎么做呢?
当前回答
mysqldump -uroot - root——所有数据库> allDB.sql
注意:-u"你的用户名" - p“密码”
其他回答
使用此命令成功导出所有数据库。
.\mysqldump -u root -p --all-databases > D:\laragon\tmp\alldb.sql
我的工具:Xampp, Windows Powershell
当您正在转储所有数据库。显然,它拥有大量的数据。所以你可以选择下面的内容:
创建备份:
mysqldump -u [user] -p[password]--single-transaction --quick --all-databases | gzip > alldb.sql.gz
如果错误
——警告:跳过mysql.event表的数据。显式指定——events选项。
Use:
mysqldump -u [user] -p --events --single-transaction --quick --all-databases | gzip > alldb.sql.gz
恢复备份:
gunzip < alldb.sql.gz | mysql -u [user] -p[password]
希望对大家有所帮助:)
其他解决方案:
它将每个数据库备份到不同的文件中
#!/bin/bash
USER="zend"
PASSWORD=""
#OUTPUT="/Users/rabino/DBs"
#rm "$OUTPUTDIR/*gz" > /dev/null 2>&1
databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
echo "Dumping database: $db"
mysqldump -u $USER -p$PASSWORD --databases $db > `date +%Y%m%d`.$db.sql
# gzip $OUTPUT/`date +%Y%m%d`.$db.sql
fi
done
出口:
mysqldump -u root -p --all-databases > alldb.sql
查阅mysqldump的文档。你可能想要使用评论中提到的一些选项:
mysqldump -u root -p --opt --all-databases > alldb.sql
mysqldump -u root -p --all-databases --skip-lock-tables > alldb.sql
进口:
mysql -u root -p < alldb.sql
为什么解析格式化的输出,而mysql命令可以直接做你想做的?
databases=`mysql -u $USER -p$PASSWORD --batch --skip-column-names -e "SHOW DATABASES;" | grep -E -v "(information|performance)_schema"`
仅列出数据库名称。