怎麼恢復MySQL資料庫

2021-09-23 19:29:43 字數 3901 閱讀 3469

雲資料庫 rds是阿里雲提供的即開即用的關係型資料庫服務,相容了mysql、sql server、postgresql、ppas(高度相容oracle)四種資料庫引擎。在傳統資料庫的基礎上,阿里雲rds提供了強大豐富的功能從而保證了高可用性、高安全性以及高效能。此外,rds還提供了諸多便利功能提公升了rds的易用性。

如今資料對每個使用者來說都是非常寶貴的財產,在使用阿里雲rds產品過程中,使用者對資料庫誤操作引起的損失可以通過資料恢復功能最大程度地減少。接下來,我們會針對怎麼恢復阿里雲rds資料庫,進行做如下操作(以下操作以mysql為列,不同引擎的操作方式請參考阿里雲官方文件):

二、其次,解壓備份檔案到指定目錄

2.安裝依賴包:

yum -y install perl perl-devel libaio libaio-devel perl-time-hires perl-dbd-mysql mysql-devel

3.安裝 xtrabackup:

rpm -ivh percona-xtrabackup-2.0.6-521.rhel6.x86_64.rpm

4.將hins190855_xtra_20150312120203.tar.gz解壓到指定目錄(不會自動新建子目錄,要先設計好)

mkdir /home/mysql/mysqldb cd /home/mysql/mysqldb

tar -izxvf hins190855_xtra_20150312120203.tar.gz

三、接著,恢復資料到一致的狀態

2.刪除此目錄下的mysql,重新生成mysql系統庫從而擁有資料庫的root許可權

rm -rf mysql    (這裡刪除mysql目錄是為了以後連線資料庫許可權)

3.更新目錄許可權

chown -r mysql:mysql /home/mysql/mysqldb/  (備份檔案所屬目錄)  並檢查檔案所屬為mysql使用者

注意:我們需要配置my.cnf ,如果說你之前linux伺服器就已經有乙個例項,那麼現在你還要建立乙個例項(也就是一台多個mysql服務)

/usr/local/lnmp/mysql/bin/mysql_install_db --user=mysql --datadir=/mysql2/

vi /etc/my.cnf

[client] 

default-character-set = utf8

[mysqld_multi]

mysqld = /usr/local/lnmp/mysql/bin/mysqld_safe

mysqladmin = /usr/local/lnmp/mysql/bin/bin/mysqladmin

user = root

[mysqld1]

port = 3306

socket = /tmp/mysql.sock

datadir = /date/lnmp/mysql

pid-file = /date/lnmp/mysql/mysql1.pid

log-error = /date/lnmp/log1/mysql_error.log

skip-locking

max_connections = 600

event_scheduler=on

server-id = 1

[mysqld2]

port = 3307

socket = /tmp/mysql2.sock

datadir = /mysql2

pid-file = /mysql2/mysql.pid

log-error = /date/lnmp/log1/mysql_error2.log

innodb_data_file_path=ibdata1:200m:autoextend

innodb_log_files_in_group=2

innodb_log_file_size=1048576000      

(注:最後三行很重要,可在/mysql2/mysql-my.cnf中複製過來即可,不然innodb表打不開)

啟動例項

/usr/local/lnmp/mysql/bin/mysqld_multi --defaults-file=/etc/my.cnf start 1

/usr/local/lnmp/mysql/bin/mysqld_multi --defaults-file=/etc/my.cnf start 2 

停止例項方法

kill -9 `ps -ef | grep 3307 | grep -v grep | awk '' | xargs`

修改mysql資料庫使用者名稱

mysql -uroot -proot -s /tmp/mysql2.sock

grant all on *.* to root@'localhost' identified by 'password'

4.以上第3步是針對一台多個例項,如果就乙個例項的話就不需要那麼麻煩,直接進行第3步,如下:

vi /etc/my.cnf

/wdzj/lnmp/mysql/my.cnf

[client]

default-character-set = utf8

#password       = your_password

port            = 3306

socket          = /wdzj/lnmp/mysql/mysql.sock

# here follows entries for some specific programs

# the mysql server

[mysqld]

port            = 3306

socket          = /wdzj/lnmp/mysql/mysql.sock

skip-external-locking

key_buffer_size = 16m

max_allowed_packet = 1m

table_open_cache = 64

sort_buffer_size = 512k

net_buffer_length = 8k

read_buffer_size = 256k

read_rnd_buffer_size = 512k

myisam_sort_buffer_size = 8m

datadir         = /home/mysql/mysqldb

max_connections=1000

innodb_data_file_path=ibdata1:200m:autoextend

innodb_log_files_in_group=2

innodb_log_file_size=1048576000

四、最後,重新生成root使用者密碼及許可權

1. 重置root密碼:

service mysql start

cd /wdzj/lnmp/mysql

./bin/mysqladmin -u root password 'linux'

2. 為root使用者賦權

grant all on *.* to root@'localhost' identified by 'linux'  with grant option;

flush privileges;

grant all on *.* to root@'%' identified by 'linux'  with grant option;

flush privileges;

(建立新使用者及賦權的語句要記得

grant all privileges on test.test to test@localhost identified by 'test' ;) 

參考

mysql rds 資料庫恢復

MySQL資料庫恢復

使用mysql命令 mysql u root p test home bak 2019 04 11 stumysql1.sql enter password song123 使用source命令恢復資料庫的說明 進入mysql資料庫控制台後,切換到想恢復資料的資料庫。mysql use 資料庫 接著...

mysql資料庫受損恢復 MySQL資料庫恢復

資料庫恢復是指以備份為基礎,與備份相對應的系統維護和管理操作。系統進行恢復操作時,先執行一些系統安全性的檢查,包括檢查所要恢復的資料庫是否存在 資料庫是否變化及資料庫檔案是否相容等,然後根據所採用的資料庫備份型別採取相應的恢復措施。資料庫恢復機制設計的兩個關鍵問題是 第一,如何建立冗餘資料 第二,如...

mysql資料庫備份,恢復

生產的資料庫可能因為以下情況導致資料丟失 硬體故障 軟體故障 自然災害 黑客攻擊 誤操作 佔比例最大 1.能夠容忍丟失多少資料 2.恢復資料需要多長時間 3.需要恢復哪一些資料 備份整個資料庫 增量備份 備份自從上次備份以來變化的資料。節約空間,還原麻煩 差異備份 備份上次完全備份以來變化的資料。浪...