|
http://www.samuelchen.net/category/database/
网站自动备份三月 21, 2006 @ 15:39 · Filed under Maintaining, Programming, Database, WordPress
根据howlym的自动备份数据库文章修改了一下,下面这个可以自动备份数据库和整个网站(前提当然是你的网站支持Shell了)
增加了邮件内容提示(这里直接将脚本包含了,注释内容就是提示。也可以另用一个文件。); 增加了一个附件,是整个网站的打包; 针对网站数据库默认是latin1来修改了dump 的编码,恢复的时候应使用相应的编码调整; 修改模式为700,避免他人可以看到密码; 备份存档。 #!/bin/bash # # To restore to another unicode databaase from this backup # Please add SET NAMES ‘utf8′; to the top of the SQL backup file. # Tune SET CHARACTER_SET_XXX = ‘XXX’; yourself pls. # DATE=`date +%Y%m%d` HOST=db.samuelchen.net USER=user PASS=123456 DB=database EMAIL=”email@yourhost.com” DB_FILE=”$DB-$DATE” SITE_FILE=”samuelchen-$DATE.tar.gz” SITE_PATH=samuelchen.net/ TIL=”Explore.Dream.Discover.Database-Dump-AutoBackup”
# clean cache rm /home/yourhome/blog/wp-content/cache/* -r >/dev/null
# dump & pack database mysqldump –default-character-set=latin1 –set-charset=utf8 –skip-opt -u$USER -p$PASS -h $HOST $DB > $DB_FILE.sql gzip $DB_FILE.sql -f
# pack whole site tar zvcf $SITE_FILE $SITE_PATH >/dev/null
# send email mv $DB_FILE.sql.gz $DB_FILE.gz | mutt $EMAIL -s $TIL -a $DB_FILE.gz -a $SITE_FILE -i backup.sh
# clean & keep archives mv $DB_FILE.gz /home/yourhome/backup/ mv $SITE_FILE /home/yourhome/backup/
存成backup.sh后,运行
$chmod 700 autobackup $crontab -e
在出现的界面中输入:
0 0 * * * /home/yourhome/backup.sh
路径请修改成你的文件路径
(如果是nano)按ctrl+o 保存,请注意按回车确认,ctrl+x退出.
这样每天晚上12点,你就可以在你的邮箱中收到系统打包好的数据库文件了。
automatic? backup? mysql?
Permalink 留言
Mysql Bacup & Restore三月 13, 2006 @ 14:24 · Filed under Maintaining, Database
Dreamhost 的mysql状态如下:
Server version: 5.0.18-standard-log Protocol version: 10 Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1
这样的编码在备份和恢复的时候会有问题,因此做了如下测试来保证其正确:
1. 恢复到原数据库,恢复后编码不变,仍全是latin1。
通过后台的worpress database backup 插件备份数据; 创建新数据库,此时编码仍全是latin1; 使用mysql> \. backup.sql 进行恢复,blog浏览显示正常,编码仍全是latin1; 插入新数据,浏览正常; 插入数据后再次备份,再次使用1、2、3恢复,正常。 2. 恢复到原数据库,恢复后编码变为server和database编码是utf8,client和conn编码是latin1。
通过后台的worpress database backup 插件备份数据; 创建新数据库,此时编码仍全是latin1; 修改backup.sql,在前面增加 SET CHARACTER_SET_DATABASE = ‘utf8′; SET CHARACTER_SET_SERVER = ‘utf8′; 两行; 使用mysql> \. backup.sql 进行恢复,blog浏览显示正常,编码变为server和database编码是utf8,client和conn编码是latin1; 插入新数据,浏览正常; 插入数据后再次备份,再次使用1、2、3恢复,浏览正常。 3. 恢复到另外一个数据库(目的数据库是4.1.18-nt,window安装时选择了多语言,服务端默认utf8,状态如下)。
Server version: 4.1.18-nt Protocol version: 10 Server characterset: utf8 Db characterset: utf8 Client characterset: latin1 Conn. characterset: latin1
通过 mysql> mysqldump -u ID -p -h hostname.samuelchen.net –default-character-set=latin1 -set-charset=utf8 –skip-opt database_name> backup.sql 备份数据; 创建新数据库,server和database编码是utf8,client和conn编码是latin1; 修改backup.sql,在最前面增加 SET NAMES ‘utf8′; 使用mysql> \. backup.sql 进行恢复,blog浏览显示正常,编码变为server和database编码是utf8,client和conn编码是latin1; 插入新数据,正常; 插入数据后再次备份,再次恢复,正常。 恢复到1,2所示的latin1数据库,无须修伽,正常。
|
一共有 0 条评论