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"

原文地址

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容