MYSQL分库备份
mysqldump -uroot -ptest123 -S /data/3306/mysql.sock -B testdb | gzip > /server/backup/mysqlbak_$(date +%F).sql.gz
可通过脚本结合定时任务实现自动备份:
mysql_db_bak.sh
#!/bin/bash
MYUSER=root
MYPASSWD=test123
SOCKET=/data/3306/mysql.sock
MYSQLCMD="mysql -u$MYUSER -P$MYPASSWD -S $SOCKET"
MYSQLDUMP="mysqldump -u$MYUSER -P$MYPASSWD -S $SOCKET"
for database in test01db test02db test03db
do
$MYSQLDUMP $database | gzip > /server/backup/${database}_$(date +%F).sql.gz
done
chmod +x mysqlbak.sh

不登录数据库查询mysql和schema数据库
$MYSQLCMD -e "show databases;" | sed '1,2d' | egrep -v "mysql|schema"

MYSQL分表备份
mysql_db_table_bak.sh
#!/bin/bash
MYUSER=root
MYPASSWD=test123
SOCKET=/data/3306/mysql.sock
MYSQLCMD="mysql -u$MYUSER -P$MYPASSWD -S $SOCKET"
MYSQLDUMP="mysqldump -u$MYUSER -P$MYPASSWD -S $SOCKET"
for database in `$MYSQLCDM -e "show databases;" | sed '1,2d' | egrep -v "mysql|schema"`
do
   mkdir -p /server/backup/${database}
   for table in `MYSQLCMD -e "show tables from $database;" | sed '1d'`
   do
   $MYSQLDUMP $database $table | gzip > /server/backup/${database}/${database}_${table}_$(date +%F).sql.gz
   done
done
chmod +x mysql_db_table_bak.sh