linux 导入 导出mysql命令 数据库备份 还原 shell脚本

原文地址

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"

原文地址

你可能感兴趣的:(linux 导入 导出mysql命令 数据库备份 还原 shell脚本)