Mysql資料庫備份和還原

2021-08-25 20:37:02 字數 4500 閱讀 3932

1)備份mysql資料庫的命令

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

2備份mysql資料庫為帶刪除表的格式

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

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

3直接將mysql資料庫壓縮備份

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

4備份mysql資料庫某個()

mysqldump -hhostname -uusername -ppassword databasename specific_table1

specific_table2 > backupfile.sql

5同時備份多個mysql資料庫

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2

databasename3 > multibackupfile.sql

6僅僅備份資料庫結構

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

7備份伺服器上所有資料庫

mysqldump –all-databases > allbackupfile.sql

1)還原mysql資料庫的命令

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

2還原壓縮的mysql資料庫

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

例如:恢復我們實驗室的資料庫,到40上有備份檔案的目錄去執行:

gunzip < backupfile.sql.gz |mysql –u

root (這樣就行了)

3將資料庫轉移到新伺服器

mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -c databasename

4) 將多個資料庫同時還原

gunzip < backupfile.sql.gz | mysql -uroot (這裡是我們的專案中的還原資料庫) 因為是多個資料庫在乙個壓縮包裡面,所以不能用各個資料庫的name和password去還原,也不能寫具體到那個資料庫。

5)單獨的資料庫恢復

mysql -uaqtas -paqtas websim < ams_websim_dump_0910.sql

gunzip < ams_websim_dump_0910.sql.gz |mysql -uaqtas -paqtas websim

以下是乙個資料庫備份的.sh檔案

#!/bin/bash #

#backup database #

# bakup directory

export back_dir=/home/jenny/backup(申明備份檔案存放的位置)

# mysql user name & password

database_user=aqtas

database_pass=aqtas

database_name_aqtas=aqtas

database_name_aqvue=aqvue(需要備份的兩個資料庫)

hostname=10.1.10.40

# get current time

current_time=`date +"%y%m%d%h%m%s"`

(%y

年, 數字, 4 位;%m 月, 數字(01……12);%d 月份中的天數, 數字(00……31);

%h 小時(00……23) ;%m分(00.......59);%s 秒(00……59))

# generate bakup file name for database

database_bakup_aqtas="aqtas-sql-bak_$.sql"(備份檔案的名稱)

database_bakup_aqvue="aqvue-sql-bak_$.sql"

# generate bakup file name for database(

可以備份成壓縮包的格式)

database_bakup_aqtas="aqtas-sql-bak_$.sql.gz"

database_bakup_aqvue="aqvue-sql-bak_$.sql.gz"

# bakup database

#backup aqtasdb,aqvuedb

mysqldump -h$ -u$ -p$ $ > $back_dir/$

mysqldump -h$ -u$ -p$ $ > $back_dir/$

# bakup database(這裡也可以把多個資料庫備份成乙個壓縮檔案)

#backup aqtasdb,aqvuedb

mysqldump -h$ -u$ -p$ $databases | gzip > $back_dir/$

# restore database

# localhost databse name&password

localhost_database_username_aqtas=aqtas

localhost_database_password_aqtas=aqtas

localhost_database_username_aqvue=aqvue

localhost_database_password_aqvue=aqvue

#restore aqtasdb,aqvuedb to localhost

mysql -u $localhost_database_username_aqtas -p $localhost_database_password_aqtas <$back_dir/$

mysql -u $localhost_database_username_aqvue -p $localhost_database_password_aqvue <$back_dir/$

# delete bakup files 7 days ago

#find $back_dir -name "jira*" -ctime +7 -type f -exec rm -f {} \;

#find $back_dir -name "testlink*" -ctime +7 -type f -exec rm -f {} \;

gunzip < backupfile.sql.gz | mysql -uroot (這裡是我們的專案中的還原資料庫) 因為是多個資料庫在乙個壓縮包裡面,所以不能用各個資料庫的name和password去還原,也不能寫具體到那個資料庫。

mysql資料庫備份和還原

備份mysql資料庫的命令 mysqldump hhostname uusername ppassword databasename backupfile.sql 備份mysql資料庫為帶刪除表的格式 備份mysql資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。mys...

MySQL資料庫備份和還原

mysqldump hhostname uusername ppassword databasename backupfile date 0,10 sql 以當前時間命名 備份mysql資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。mysqldump add drop...

Mysql資料庫備份和還原

備份mysql資料庫的命令 mysqldump hhostname uusername ppassworddatabasename backupfile.sql 備份mysql資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。mysqldump add drop tabl...