1.备份数据库脚本
[code]#!/bin/bash
# 要备份的数据库名,多个数据库用空格分开
databases=(db1 db2 db3)
# 备份文件要保存的目录
basepath='/root/backup/b3log.org/mysql/'
if [ ! -d "$basepath" ]; then
mkdir -p "$basepath"
fi
# 循环databases数组
for db in ${databases[*]}
do
# 备份数据库生成SQL文件
/bin/nice -n 19 /usr/bin/mysqldump -uUSER -pPASSWORD --databases $db > $basepath$db-$(date +%Y%m%d).sql
# 将生成的SQL文件压缩
/bin/nice -n 19 tar zPcf $basepath$db-$(date +%Y%m%d).sql.tar.gz $basepath$db-$(date +%Y%m%d).sql
# 删除7天之前的备份数据
find $basepath -mtime +7 -name "*.sql.tar.gz" -exec rm -rf {} \;
done
# 删除生成的SQL文件
rm -rf $basepath/*.sql
[/code]
其中备份目录、MySQL 口令需要配置。
然后使用 crontab 设置该脚本定时执行:
crontab -e
设置为凌晨 3 点执行:
0 3 * * * /root/backup_mysql.sh
- mac下传文件 scp -p 4588 username@www.abc.com:/uploadfiles /home/administrator
3.更改域名
问题:虽然我们并不主张这样做,但也许有时你需要在保留博客和数据的同时改变博客的域名。由于WordPress把域名存储在数据库中,所以为了把新域名和博客连接起来,你必须更改数据库。
解决方法:
登陆phpMyAdmin,选中你的WordPress数据库。
更改博客的安装地址和博客地址,首先用phpmyadmin打开你的数据库,然后找到wp-options这个数据表,找到第一条记录也就是siteurl这条,还有第39条home,这两条将地址改成你更换后的最域名即可。只有完成这一步后,才可以顺利进入后台,否则即使你输入密码,也会自动跳转到原来的老域名。PHP My管理中选择数据库,—->点击 SQL 在输入栏中输入如下代码:
[code]
UPDATE wp_options SET option_value = replace( option_value,"http://老域名","http://新域名") WHERE option_name ="home" OR option_name ="siteurl";[/code]
使用以下语句替代所有日志的相对URL(guid全局唯一标识符)
[code]
UPDATE wp_posts SET guid = replace(guid, 'http://www.oldsite.com','http://www.newsite.com');[/code]
搜索wp_posts表并替代其中的URL,以确保没有老的URL存在了:
[code]UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldsite.com', 'http://www.newsite.com');[/code]
完成!现在可以使用新URL登陆WordPress控制台了。
注解:为了更快地更改WordPress域名,我选择使用超级有用的MySQL函数“replace,”,这会完全替代所有需要替代的内容。
为了安全或者避免多个表同名,有时候需要批量修改数据库表前缀:
1.将以下代码保存为rename_suffix.php,并根据自己需要修改第11、12行,上传到wp-config.php同目录。
注:如果你不清楚当前数据库前缀,可以查看站点根目录下的wp-config.php文件,确定前缀。
<?php /** * 修改wordpress表名前缀的工具. *filename:rename_suffix.php * @By http://www.amyflash.com */ header("Content-type: text/html; charset=utf-8"); /////////下面两行您需要修改/////////// $oldtablepre='wp_'; //旧的表前缀 $newtablepre='lq_'; //您要修改成新的表前缀 /////////上面两行您需要修改/////////// ##########@以下请勿修改@###########################!DONT CHANGE BELOW!################################################## require_once( dirname(__FILE__) . '/wp-load.php' ); $tables=array("{$oldtablepre}commentmeta","{$oldtablepre}comments","{$oldtablepre}links","{$oldtablepre}options","{$oldtablepre}postmeta","{$oldtablepre}posts","{$oldtablepre}terms","{$oldtablepre}term_relationships","{$oldtablepre}term_taxonomy","{$oldtablepre}usermeta","{$oldtablepre}users"); echo '<div style="font-size:1.2em;"><span style="color:gray;font-weight:bold;">下面更改表名:</span><hr></hr>'; foreach ($tables as $key => $value){ $oldtable=$value; $newtable=str_replace($oldtablepre,$newtablepre,$value); $wpdb->query("ALTER TABLE `$oldtable` RENAME TO `$newtable`"); echo '成功更改表名'.$oldtable.'为:<span style="color:green;">'.$newtable.'</span><br></br>'; } echo '<span style="color:gray;font-weight:bold;">下面更改'.$newtablepre.'options表中的键值:</span><hr></hr>'; $wpdb->query("update `{$newtablepre}options` set `option_name`=replace(option_name,'{$oldtablepre}user_roles','{$newtablepre}user_roles')"); echo '成功更改'.$oldtablepre.'user_roles为:<span style="color:green;">'.$newtablepre.'user_roles</span><br></br>'; $meta_key=array("{$oldtablepre}capabilities","{$oldtablepre}user_level","{$oldtablepre}autosave_draft_ids","{$oldtablepre}usersettings","{$oldtablepre}usersettingstime"); echo '<span style="color:gray;font-weight:bold;">下面更改'.$newtablepre.'usermeta表中的键值:</span><hr></hr>'; foreach ($meta_key as $key => $value){ $oldoption=$value; $newoption=str_replace($oldtablepre,$newtablepre,$value); $rs=$wpdb->query("update `{$newtablepre}usermeta` set `meta_key` =replace(meta_key,'$oldoption','$newoption')"); echo '成功更改'.$oldoption.'为:<span style="color:green;">'.$newoption.'</span><br></br>'; } echo '</div>'; ?>
2.将站点根目录下的wp-config.php文件中的数据库前缀修改为最新前缀,并保存就可以了。
如果你是通过FTP将wp-config.php文件文件下载到本地后修改,还需要将保存后的文件上传至服务器并覆盖原有文件。