linux 导入 导出mysql命令 数据库备份 还原 shell脚本
备份、导出数据库
- 导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
直接在终端中输入:
mysqldump -u root -p myblog > /home/blog/myblog.sql
- 导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u root -p myblog user_table> /home/blog/user_table.sql
导入、还原数据库
- 方法一:
进入mysql数据库控制台,如:
mysql -u root -p
mysql>use myblog;
如果导出的时候设置了字符集,还需要设置一下,这里的字符集根你的将要导入的数据库的字符集一至:
mysql>set names utf8;
然后使用source命令,导入:
source /home/blog/myblog.sql;
- 方法二:
mysql -u 用户名 -p 数据库名 < 数据库名.sql
直接在终端:
mysql -u root -p myblog < /home/blog/myblog.sql
这种方法的缺点不能设置字符集。
shell backup mysql
#!/bin/sh
sqlPath="$destDir/wordpress.sql"
user="dbuser"
password="dbpassword"
dbname="wordpress"
mysqldump -u$user -p$password $dbname > $sqlPath
echo "backup wordpress.sql to $sqlPath finished"
完整的备份wordpress脚本及说明见Github地址.
附上脚本
完整备份wordpress目录及mysql脚本:
#!/bin/sh
sourceFolder="/home/www/wordpress"
backDir="/var/backup"
folderName="wordpress$(date +%y%m%d)"
destDir="$backDir/$folderName"
if [ ! -d "$destDir" ]; then
echo "$destDir is not exist"
else
rm -rf $destDir
echo "delete dir: $destDir"
fi
mkdir -p $destDir
if [ ! -f "$backDir/$folderName.tar.gz" ]; then
echo "$folderName.tar.gz is not exist"
else
rm -rf "$backDir/$folderName.tar.gz"
echo "delete $backDir/$folderName.tar.gz"
fi
cp -rf $sourceFolder $destDir
echo "copy blog to $destDir finished"
sqlPath="$destDir/wordpress.sql"
user="dbuser"
password="yourdbpassword"
dbname="wordpress"
mysqldump -u$user -p$password $dbname > $sqlPath
echo "backup wordpress.sql to $sqlPath finished"
cd $backDir
tar -zcf $folderName.tar.gz $folderName
echo "tar $destDir complete"
rm -rf $destDir
echo "delete $destDir"