溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)遷移RDS for MySQL數(shù)據(jù)到本地 MySQL

發(fā)布時(shí)間:2020-06-04 17:28:37 來源:網(wǎng)絡(luò) 閱讀:407 作者:三月 欄目:MySQL數(shù)據(jù)庫

不知道大家之前對類似如何實(shí)現(xiàn)遷移RDS for MySQL數(shù)據(jù)到本地 MySQL的文章有無了解,今天我在這里給大家再簡單的講講。感興趣的話就一起來看看正文部分吧,相信看完如何實(shí)現(xiàn)遷移RDS for MySQL數(shù)據(jù)到本地 MySQL你一定會有所收獲的。

首先需要下載跟線上阿里云的數(shù)據(jù)庫同樣版本的數(shù)據(jù)庫安裝包或者說二進(jìn)制編碼包(已編譯,可以直接使用)

鏈接如下:

http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

解壓縮:

root@ubuntu:/data#tar  -xzvf  mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

root@ubuntu:/data# mv  mysql-5.6.36-linux-glibc2.5-x86_64  mysql

root@ubuntu:/data#cd  mysql

root@ubuntu:/data/mysql#

root@ubuntu:/data/mysql# ls  //解壓縮出來的文件如下所示,不用源碼編譯安裝,直接使用即可;

bin  COPYING  data  docs  include  lib  man  my.cnf  my-new.cnf  mysql-test  README  scripts  share  sql-bench  support-files

接下來就是解壓縮線上數(shù)據(jù)庫的備份文件:

root@ubuntu:/data/mysql#cd  ../

root@ubuntu:/data# tar -xzvf h7351_data_20170804032.tar.gz  -C /data/mariadb/

待得解壓縮完成后,恢復(fù)數(shù)據(jù)文件:

首先需要安裝innobackupex命令,所以要安裝這個包文件:

root@ubuntu:/data#apt-get install percona-xtrabackup

root@ubuntu:/data#innobackupex --defaults-file=./backup-my.cnf --apply-log --ibbackup xtrabackup_56  ./      //必須要加上后面的--ibbackup  xtrabackup_56,我這里是56,因?yàn)槲业臄?shù)據(jù)庫版本是5.6版本的;

最后系統(tǒng)顯示 innobackupex: completed OK!,則數(shù)據(jù)恢復(fù)成功。

數(shù)據(jù)恢復(fù)成功之后,修改恢復(fù)數(shù)據(jù)mariadb目錄下文件(包含mariadb目錄)的屬主和屬組:

新建mysql用戶:

root@ubuntu:/data#useradd  mysql

root@ubuntu:/data# chown -R mysql.mysql mariadb/   //修改解壓縮后的數(shù)據(jù)文件的屬主和屬組,以級聯(lián)的方式,把mariadb目錄下的所有文件修改屬主和屬組為mysql

初始化之前需要修改配置文件;

root@ubuntu:~#cd /data/mariadb  //數(shù)據(jù)庫的數(shù)據(jù)文件解壓縮的目錄

root@ubuntu:/data/mysql/scripts# cd /data/mariadb/

root@ubuntu:/data/mariadb# vi backup-my.cnf   //我的配置文件如下:

把將解壓文件 backup-my.cnf 中的 innodb_fast_checksum、innodb_page_size、innodb_log_block_size 注釋掉,并且添加 datadir=/data/mariadb


# This MySQL options file was generated by innobackupex.

# The MySQL server

[mysqld]

innodb_checksum_algorithm=innodb

#innodb_log_checksum_algorithm=innodb

innodb_data_file_path=ibdata1:200M:autoextend

innodb_log_files_in_group=2

innodb_log_file_size=1572864000

#innodb_fast_checksum=false

#innodb_page_size=16384

#innodb_log_block_size=512

innodb_undo_directory=.

innodb_undo_tablespaces=0

datadir=/data/mariadb

#rds_encrypt_data=false

#innodb_encrypt_algorithm=aes_128_ecb

初始化操作:

進(jìn)入剛解壓的mysql安裝的位置/data/mysql

root@ubuntu:~# cd /data/mysql/

root@ubuntu:/data/mysql# ls

bin  COPYING  data  docs  include  lib  man  my.cnf  my-new.cnf  mysql-test  README  scripts  share  sql-bench  support-files

root@ubuntu:/data/mysql# cd scripts/

root@ubuntu:/data/mysql/scripts#

root@ubuntu:/data/mysql/scripts# ./mysql_install_db --user=mysql --datadir=/data/mariadb --basedir=/data/mysql --defaults-file=/data/mariadb/backup-my.cnf   //這里需要指定配置文件,不然它會在初始化的時(shí)候去到/etc/目錄下查找

出現(xiàn)OK即表示初始化成功;

接下來就是創(chuàng)建快捷方式啦:

root@ubuntu:/data/mariadb# cd /data/mysql/support-files/   //進(jìn)入mysql安裝位置的這個目錄

root@ubuntu:/data/mysql/support-files# ls

binary-configure  magic  my-default.cnf  mysqld_multi.server  mysql-log-rotate  mysql.server

root@ubuntu:/data/mysql/support-files# cp mysql.server /etc/init.d/mysqld   //復(fù)制啟動文件到/etc/init.d/目錄下

root@ubuntu:/data/mysql/support-files#vi  /etc/init.d/mysqld  //做一下修改,具體修改的位置如下:

basedir=/data/mysql

datadir=/data/mariadb


修改完成后保存退出,還需要注意一個地方,就是配置文件,如果啟動的時(shí)候不指定配置文件,那么它就會調(diào)用/etc/my.cnf文件,所以需要指定,有兩種方法,一種是直接在/etc/init.d/mysqld中修改,如:

  #conf=/etc/my.cnf

  conf=/data/mariadb/backup-my.cnf


另一種方法就是:直接復(fù)制解壓文件mariadb目錄下的backup-my.cnf文件到/etc/my.cnf,如

root@ubuntu:/data/mariadb# cp backup-my.cnf /etc/my.cnf   //這樣就可以不用修改/etc/init.d/mysqld文件中的conf

啟動mysql:

root@ubuntu:/data/mariadb#/etc/init.d/mysqld start  //未報(bào)錯,即表示是正常的

root@ubuntu:/data/mariadb#ps aux | grep mysql  //查看是否有mysql進(jìn)程

root      5706  0.0  0.0   4464  1624 pts/0    S    09:53   0:00 /bin/sh /data/mysql/bin/mysqld_safe --datadir=/data/mariadb --pid-file=/data/mariadb/ubuntu.pid

mysql     5900  0.3  7.2 1572664 586972 pts/0  Sl   09:53   0:08 /data/mysql/bin/mysqld --basedir=/data/mysql --datadir=/data/mariadb --plugin-dir=/data/mysql/lib/plugin --user=mysql --log-error=/data/mariadb/ubuntu.err --pid-file=/data/mariadb/ubuntu.pid

root      6009  0.0  0.0  13464  2124 pts/1    S+   10:29   0:00 grep --color=auto mysql

root@ubuntu:/data/mariadb#


附上阿里云文檔上的操作:

操作步驟

本例以本地云服務(wù)器為 RHEL6/x64 系統(tǒng),備份文件存儲路徑為 /home/mysql/ 為例。

  1. 下載云數(shù)據(jù)庫 物理備份文件 并上傳至目標(biāo)云服務(wù)器。備份文件獲取方法請參見 下載備份數(shù)據(jù)。如果目標(biāo)云服務(wù)器可以訪問源實(shí)例,您也可以使用 wegt "url" 下載備份文件。其中 url 為備份文件下載地址。

  2. 切換路徑到備份文件所在路徑。

  1. cd /home/mysql/

  1. 解壓備份文件。

  1. tar vizxf filename.tar.gz

其中,filename.tar.gz 為備份文件名。

  1. 檢查解壓后文件包含的數(shù)據(jù)庫是否正確。

  1. cd filename/

  2. ll

系統(tǒng)顯示如下,其中 db0dz1rv11f44yg2、mysql 和 test 為云數(shù)據(jù)庫中存在的數(shù)據(jù)庫。

  1. -rw-r--r-- 1 root root       269 Aug 19 18:15 backup-my.cnf

  2. drwxr-xr-x 2 root root      4096 Aug 21 10:31 db0dz1rv11f44yg2

  3. -rw-rw---- 1 root root 209715200 Aug  7 10:44 ibdata1

  4. drwxr-xr-x 2 root root      4096 Aug 21 10:31 mysql

  5. drwxr-xr-x 2 root root      4096 Aug 21 10:31 test

  6. -rw-r--r-- 1 root root        10 Aug 19 18:15 xtrabackup_binary

  7. -rw-r--r-- 1 root root        23 Aug 19 18:15 xtrabackup_binlog_info

  8. -rw-r--r-- 1 root root        77 Aug 19 18:15 xtrabackup_checkpoints

  9. -rw-r--r-- 1 root root      2560 Aug 19 18:15 xtrabackup_logfile

  10. -rw-r--r-- 1 root root        72 Aug 19 18:15 xtrabackup_slave_info

  1. 恢復(fù)數(shù)據(jù)文件。

  1. innobackupex --defaults-file=./backup-my.cnf --apply-log ./

系統(tǒng)顯示 innobackupex: completed OK!,則數(shù)據(jù)恢復(fù)成功。

  1. 修改配置文件。將解壓文件 backup-my.cnf 中的 innodb_fast_checksum、innodb_page_size、innodb_log_block_size 注釋掉,并且添加 datadir=/home/mysql,如下所示。

  1. # This MySQL options file was generated by innobackupex-1.5.1.

  2. # The MySQL Server

  3. [mysqld]

  4. innodb_data_file_path=ibdata1:200M:autoextend

  5. innodb_log_files_in_group=2

  6. innodb_log_file_size=524288000

  7. #innodb_fast_checksum=0

  8. #innodb_page_size=16364

  9. #innodb_log_block_size=512

  10. datadir=/home/mysql/

  1. 重裝 MySQL 系統(tǒng)庫,取得數(shù)據(jù)庫的 root 權(quán)限。

  1. rm -rf mysql

  2. mysql_install_db --user=mysql --datadir=/home/mysql/

系統(tǒng)顯示如下,則 mysql 系統(tǒng)庫重裝成功。

  1. Installing MySQL system table...

  2. OK

  3. Filling help table...

  4. OK

  1. 修改文件屬主。

  1. chown -R mysql:mysql /home/mysql/

  1. 啟動 mysqld 進(jìn)程。

  1. mysqld_safe --defaults-file=/home/mysql/backup-my.cnf &

  1. 使用客戶端登錄數(shù)據(jù)庫。

  1. mysql –u root –p

  1. 驗(yàn)證數(shù)據(jù)庫是否完整。

  1. show databases;

系統(tǒng)顯示入選,則數(shù)據(jù)庫恢復(fù)成功。

  1. +--------------------+

  2. | Database           |

  3. +--------------------+

  4. | information_schema |

  5. | db0dz1rv11f44yg2   |

  6. | mysql              |

  7. | performance_schema |

  8. | test               |

  9. +--------------------+

利用邏輯備份文件導(dǎo)出

本例以本地云服務(wù)器為 RHEL6/x64 系統(tǒng),備份文件存儲路徑為 /home/mysql/ 為例。

操作步驟

  1. 下載云數(shù)據(jù)庫 邏輯備份文件 并上傳至目標(biāo)云服務(wù)器。備份文件獲取方法請參見 下載備份數(shù)據(jù)。如果目標(biāo)云服務(wù)器可以訪問源實(shí)例,您也可以使用 wegt "url" 下載備份文件。其中 url 為備份文件下載地址。

  2. 切換路徑到備份文件所在路徑。

  1. cd /home/mysql/

  1. 解壓備份文件。

  1. tar vizxf filename.tar.gz

其中,filename.tar.gz 為備份文件名。

  1. 解壓 sql 壓縮文件。

  1. gunzip filename.sql.gz

其中,filename.sql.gz 為 sql 壓縮文件名。

  1. 執(zhí)行邏輯導(dǎo)入操作,將數(shù)據(jù)導(dǎo)入目標(biāo)數(shù)據(jù)庫。

  1. mysql -u userName -p -h hostName -P port dbName < filename.sql

其中,filename.sql 為解壓后的 sql 文件。

看完如何實(shí)現(xiàn)遷移RDS for MySQL數(shù)據(jù)到本地 MySQL這篇文章,大家覺得怎么樣?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI