Mysql 之多库备份

数据库备份专门建立一个用户用来备份;

现在备份的库有backdbone,backdbtwo

创建用户

 grant all privileges on backdbone.* to 'forback'@'%' identified by '123456';
 grant all privileges on backdbtwo.* to 'forback'@'%' identified by '123456';

创建shell脚本[在别人脚本上稍微修改]:

#!/bin/sh

# Database info
DB_USER="forback"
DB_PASS="123456"
DB_HOST="localhost"
DB_NAME="backdbone backdbtwo"

# Others vars
BIN_DIR="/usr/local/mysql/bin"            #the mysql bin path
BCK_DIR="/web/ccbBak/sqlBack"    #the backup file directory
DATE=`date +%F`

# TODO
# /usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql
# $BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.sql
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST -B $DB_NAME | gzip > $BCK_DIR/db_$DATE.sql.gz

# 还原数据库
# 把 *.sql.gz 本地的解压软件 解压为 *.sql 文件
# 用mysql-front导入前一天的 *.sql 文件即可恢复数据 

保存文件到 /web/ccbBak/sqlBack/mysqlback.sh ;记得保存格式为unix[菜单中选择:编辑>档案格式转换>转换成UNIX] 

赋予文件可执行权限 chmod +x mysqlbakc.sh

执行文件./mysqlback.sh 即可

我用的mysql操作工具是mysql-front 再导入的时候会报错:"在多字节的目标代码页中 没有此unicode"

解决方法:在MySQLFront导入SQL文件时,在选择了目标SQL文件后,再在文件选择框下端,选择合适的字符集。默认是ANSI,选择UTF-8就解决问题了。

你可能感兴趣的:(Mysql)