备份: —R 数据库下的存储过程一起备份。 -q 快速备份,不经过内存可能,当数据量很大时这个参数必须,否则备份时报内存不足错误。
也可以指定 --socket=/tmp/mysql.sock
/usr/bin/mysqldump --user=root --password=eco -R eco > $backupDir/mysql-$date.dmp
没有密码时:
/usr/bin/mysqldump --user=root eco > $backupDir/mysql-$date.dmp
还原:
mysql -u root -p eco < $backupDir/mysql-$date.dmp
回车,提示输入密码,输入回车!
无密码,直接回车!
Linux下的Shell文件。
#!/bin/sh
# Name:mysqlbackup.sh
# PS:MySQL DataBase Backup,Use mysqlhotcopy script.
# Last Modify:2011-08-19
scriptsDir=`pwd`
#mysqlのデータパス
dataDir=/var/lib/mysql
#データベース名
databases='XXX'
#バックアップのパス
backupDir=/databasebackup/eco/data
#登録Mysqlのユーザ名
mysqlUser=XXX
mysqlPWD=XXX
#バックアップのフォルダーが存在しない場合、新規フォルダー
if [[ ! -e $backupDir ]]; then
mkdir $backupDir
chmod 777 $backupDir
fi
#Dumpコマンドを使ってバックアップする
date=`date "+%Y-%m-%d"`
/usr/bin/mysqldump --user=$mysqlUser --password=$mysqlPWD -R $databases > $backupDir/mysql-$date.dmp
logDateTime=`date "+%Y-%m-%d %H:%M:%S"`
echo "$logDateTime Database:$databases backup success!" >>$backupDir/MySQLBackup.log
chmod 777 $backupDir/mysql-$date.dmp
cd $backupDir
tar czf mysql-$date.tar.gz mysql-$date.dmp
rm -rf mysql-$date.dmp
#指定期間のデータを削除する
delName=`date "+%Y-%m-%d" -d '-30 day'`
rm -rf $backupDir/mysql-$delName.tar.gz
加入到linux的定时任务中:
#进入编辑模式
crond 或 crontab -e
0 3 * * * /databasebackup/eco/ecomysqlbackup.sh
(保存)退出 :wq
#查看
crontab -l
#启动
/etc/init.d/crond start/restart/stop