linux server mysql 備份

今天需要把一臺服務器的的mysql 數據備份到另一臺服務器上;

首先自然是需要先對原服務器上的數據備份

記錄如下:

一,數據庫的備份與導入

1),數據庫的備份

1.導出整個數據庫
mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名
例:(jstorm_server)➜  ~/mysqlBackup mysqldump -u root -p fdroid > ./fdroidBackup.sql

2.導出一個表
mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
例:mysqldump -u dbadmin -p myblog wp_users> /home/zhangy/blog/database_bak/blog_users.sql

3.導出一個數據庫結構
mysqldump -u dbadmin -p -d --add-drop-table myblog > /home/zhangy/blog/database_bak/blog_struc.sql
說明:-d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table

4.導出數據庫一個表結構
mysqldump -u dbadmin -p -d --add-drop-table myblog  wp_users> /home/zhangy/blog/database_bak/blog_users_struc.sql
說明:-d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table


二,數據的傳輸

scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,scp傳輸是加密的,可能會稍微影響一下速度其佔用的系統資源非常小。非常適合遠程文件的拷貝。

1.命令格式:

scp [參數] [原路徑] [目標路徑]

2.命令功能:

scp是 secure copy的縮寫, scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。linux的scp命令可以在linux服務器之間複製文件和目錄

3.命令參數:

-1  強制scp命令使用協議ssh1  

-2  強制scp命令使用協議ssh2  

-4  強制scp命令只使用IPv4尋址  

-6  強制scp命令只使用IPv6尋址  

-B  使用批處理模式(傳輸過程中不詢問傳輸口令或短語)  

-C  允許壓縮。(將-C標誌傳遞給ssh,從而打開壓縮功能)  

-p 保留原文件的修改時間,訪問時間和訪問權限。  

-q  不顯示傳輸進度條。  

-r  遞歸複製整個目錄。  

-v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。   

-c cipher  以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。   

-F ssh_config  指定一個替代的ssh配置文件,此參數直接傳遞給ssh。  

-i identity_file  從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。    

-l limit  限定用戶所能使用的帶寬,以Kbit/s爲單位。     

-o ssh_option  如果習慣於使用ssh_config(5)中的參數傳遞方式,   

-P port  注意是大寫的P, port是指定數據傳輸用到的端口號   

-S program  指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。

4.使用實例:

 執行命令將本地的目錄上傳的遠程服務器目錄上。執行命令"scp  -r /opt/test [email protected]:/opt"。本條命令意思爲將本地的目錄/opt/test上傳到遠程192.168.2.105的opt目錄下。然後根據提示輸入root的密碼,等待即可上傳完畢。

執行命令"scp /root/node-v4.2.1-linux-x64.tar.gz [email protected]:/opt/test"。意思爲將本地文件node-v4.2.1-linux-x64.tar.gz上傳到服務器/opt/test目錄下。

scp -r [email protected]:/root/rules /opt"。意思爲將遠程服務器上/root/rules目錄內的內容拷貝到本地的opt目錄下。

執行命令"scp -P 22 [email protected]:/root/filters.bpf /opt/"。意思爲將遠程服務器上/root目錄下的filters.bpf文件拷貝到本地的opt目錄下。

三,數據庫的創建以及數據的恢復

show create database fdroid; 查看字符集

創建數據庫 並指定字符集

命令:

CREATE DATABASE yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  創建用戶

命令:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

  host爲可以登錄的主機地址,如果任何主機都可以,設置爲%

給用戶授權

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

privileges - 用戶的操作權限,如SELECT , INSERT , UPDATE 等(詳細列表見該文最後面).如果要授予所的權限則使用ALL;databasename - 數據庫名,tablename-表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示, 如*.*。

附上

Linux下MySQL數據庫常用基本操作 一:http://www.cnblogs.com/xdpxyxy/archive/2012/11/16/2773662.html

導入數據

用 source 語句
    例如:

mysql -u root -p

use fdroid;

set names utf8;  #這裏的字符集根你的將要導入的數據庫的字符集一致。

source /home/zhangy/blog/database_bak/myblog.sql;






 










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章