天天看點

MySQL備份和恢複資料庫指令mysqldump -uusername -ppassword databasename | mysql –host=... -C databasename

1.導出整個資料庫

  mysqldump -u 使用者名 -p 資料庫名 > 導出的檔案名

  mysqldump -u  user -p database > database.sql

2.導出一個表

  mysqldump -u 使用者名 -p 資料庫名 表名> 導出的檔案名

  mysqldump -u wcnc -p databasename tablename> table.sql

3.導出一個資料庫結構

  mysqldump -u user -p -d --add-drop-table databasename > /data/

  -d 沒有資料 --add-drop-table 在每個create語句之前增加一個drop table

  

備忘: mysqldump在linux下可直接使用 在windows下有時需要進入mysql/bin中使用 因為有時用的是類似appserv的套裝軟體 這樣的話指令就不能直接使用 因為這些指令沒在環境變量的目錄裡 而且用mysqldump導出的備份 必須先建立資料庫才能導入

4.導入資料庫

  常用source 指令

  進入mysql資料庫控制台,

  如mysql -u root -p

  mysql>use 資料庫

  然後使用source指令,後面參數為腳本檔案(如這裡用到的.sql)

  mysql>source d:wcnc_db.sql

存疑: phpmyadmin導入有大小限制 不知道source導入時有沒限制 而且導出時是不可以限制檔案大小 并且分數個檔案導出

mysqldump是備份mysql資料庫的一種好工具。它相對于用phpmyadmin等備份工具更加快速,又避免受php.ini等的限制,在windows系統下還可以結合計劃任務實作定時遠端備份資料庫。

操作用mysqldump備份資料庫的使用者需要的權限比較小,隻需要select和lock table的權限就足夠了。是以可以建立一個備份資料庫的使用者,專門用于備份資料庫,這樣可以避免資料庫受到意外的破壞。

假設我們的任務是要備份一個位于192.168.1.2伺服器上,名稱為backup_test的資料庫,并把備份檔案放到D:\bak\的檔案夾中。又假設我們的作業系統為windows xp,于是我們可以用以下的方法執行備份操作:

使用windows自帶的指令提示符中輸入以下指令:

mysqldump -ubackup -p123456 -h 192.168.1.2 backup_test > D:\bak\bakcup.sql

在這段指令中:

mysqldump 是myqldump的程式名了;

-u 是資料庫的使用者名,後面緊跟着使用者名backup;

-p 是資料庫的密碼,後面同樣緊跟着密碼,注意是-p和密碼之間不能有空格;

-h 是資料庫的位址,如果沒有此項表明是備份本地的資料庫;

backup_test 要備份的資料庫名稱;

表明該資料庫備份到後面的檔案,緊跟當然是備份檔案的位址了,注意要用絕對檔案路徑,檔案的字尾也可以用.txt。

=======================================

備份MySQL資料庫的指令

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

備份MySQL資料庫為帶删除表的格式

備份MySQL資料庫為帶删除表的格式,能夠讓該備份覆寫已有資料庫而不需要手動删除原有資料庫。

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

直接将MySQL資料庫壓縮備份

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

備份MySQL資料庫某個(些)表

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同時備份多個MySQL資料庫

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

僅僅備份資料庫結構

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

備份伺服器上所有資料庫

mysqldump –all-databases > allbackupfile.sql

還原MySQL資料庫的指令

mysql -hhostname -uusername -ppassword databasename < backupfile.sql

還原壓縮的MySQL資料庫

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

将資料庫轉移到新伺服器

mysqldump -uusername -ppassword databasename | mysql –host=... -C databasename

其他的方式:

導出 select * from table_name into outfile 'c:\path\filename.txt '

導入:LOAD DATA LOCAL INFILE 'file_name.txt' INTO TABLE tbl_name