sh 将所有MySQL数据库备份到单独的文件中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 将所有MySQL数据库备份到单独的文件中相关的知识,希望对你有一定的参考价值。

#!/bin/sh
## backup each mysql db into a different file, rather than one big file
## as with --all-databases. This will make restores easier.
## To backup a single database simply add the db name as a parameter (or multiple dbs)
 
## Putting the script in /var/backups/mysql seems sensible... on a debian machine that is
## Create the user and directories
# mkdir -p /var/backups/mysql/databases
# useradd --home-dir /var/backups/mysql --gid backup --no-create-home mysql-backup
## Remember to make the script executable, and unreadable by others
# chown -R mysql-backup:backup /var/backups/mysql
# chmod u=rwx,g=rx,o= /var/backups/mysql/dump.sh

## crontab entry - backup every night at 02:00
# sudo -u mysql-backup crontab -e
# 0 2 * * * /var/backups/mysql/dump.sh
 
## Create 'backup' mysql user
# CREATE USER 'backup'@'localhost' IDENTIFIED BY 's3cr3t'; 
# GRANT EVENT, LOCK TABLES, PROCESS, REFERENCES, SELECT, SHOW DATABASES, SHOW VIEW, TRIGGER ON *.* TO 'backup'@'localhost' ; 

 
USER="backup"
PASSWORD="s3cr3t"
OUTPUTDIR=$(dirname $0)"/databases"
MYSQLDUMP="/usr/bin/mysqldump"
MYSQL="/usr/bin/mysql"
 
 
 
if [ -z "$1" ]; then
	databases=`$MYSQL --user=$USER --password=$PASSWORD --batch --skip-column-names -e "SHOW DATABASES;" | grep -v 'mysql\|information_schema'`
	for database in $databases; do
		$MYSQLDUMP \
		--user=$USER --password=$PASSWORD \
		--force \
		--quote-names --dump-date \
		--opt --single-transaction \
		--events --routines --triggers \
		--databases $database \
		--result-file="$OUTPUTDIR/$database.sql"
	done
else
	for database in ${@}; do
		$MYSQLDUMP \
		--user=$USER --password=$PASSWORD \
		--force \
		--quote-names --dump-date \
		--opt --single-transaction \
		--events --routines --triggers \
		--databases $database \
		--result-file="$OUTPUTDIR/$database.sql"
	done
fi

以上是关于sh 将所有MySQL数据库备份到单独的文件中的主要内容,如果未能解决你的问题,请参考以下文章

mysql备份工具

mysql中的数据备份与还原

mysql 备份

sh 用于备份所有mysql数据库的脚本

sh 用于备份所有mysql数据库的脚本

sh 用于备份所有mysql数据库的脚本