天天看點

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

原文:http://www.enmotech.com/web/detail/1/715/1.html(複制連結,打開浏覽器即可檢視原文)

導讀:本文介紹MySQL資料庫備份之主從同步配置,通過将騰訊雲伺服器上的MySQL備份到本地伺服器中這個例子來做出展開解釋。

主從同步意義?

主從同步使得資料可以從一個資料庫伺服器複制到其他伺服器上,在複制資料時,一個伺服器充當主伺服器(master),其餘的伺服器充當從伺服器(slave)。因為複制是異步進行的,是以從伺服器不需要一直連接配接着主伺服器,從伺服器甚至可以通過撥号斷斷續續地連接配接主伺服器。通過配置檔案,可以指定複制所有的資料庫,某個資料庫,甚至是某個資料庫上的某個表。

機制

MySQL伺服器之間的主從同步是基于二進制日志機制,主伺服器使用二進制日志來記錄資料庫的變動情況,從伺服器通過讀取和執行該日志檔案來保持和主伺服器的資料一緻。

在使用二進制日志時,主伺服器的所有操作都會被記錄下來,然後從伺服器會接收到該日志的一個副本。從伺服器可以指定執行該日志中的哪一類事件(譬如隻插入資料或者隻更新資料),預設會執行日志中的所有語句。

配置主從同步的基本步驟

有很多種配置主從同步的方法,可以總結為如下的步

在主伺服器上,必須開啟二進制日志機制和配置一個獨立的ID開啟方法在每一個從伺服器上,配置一個唯一的ID,建立一個用來專門複制主伺服器資料的賬号在開始複制程序前,在主伺服器上記錄二進制檔案的位置資訊如果在開始複制之前,資料庫中已經有資料,就必須先建立一個資料快照(可以使用MySQLdump導出資料庫,或者直接複制資料檔案)配置從伺服器要連接配接的主伺服器的IP位址和登陸授權,二進制日志檔案名和位置

案例:将騰訊雲伺服器上的MySQL備份到本地伺服器中。

遠端騰訊雲服務MySQL------------------------主

本地伺服器daocker容器中的MySQL -------從

第一步:

在本地伺服器中的docker容器中安裝 mysql_docker鏡像

将鏡像檔案下載下傳到本地,然後通過工具上傳到本地伺服器中

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

使用xshell進入本地伺服器中檢視檔案是否上傳到了home/ubuntu目錄下

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第一步:

還是在本地伺服器中使用docker安裝鏡像

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

檢查鏡像是否安裝成功。

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第二步:

在本地伺服器中建立一個用于備份的虛拟環境

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第三步:

在遠端騰訊雲伺服器中的/home/ubuntu目錄中建立一個mysql_slave目錄,進入該目錄在建立一個data目錄

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第四步:

将遠端騰訊雲伺服器中的MySQL配置資訊複制到上面建立的mysql_slave目錄中 執行指令:cp -r /etc/mysql/mysql.conf.d ./

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第五步:

進入mysql.conf.d目錄中對mysqld.cnf檔案進行編輯(注意,這裡我複制過來的所有配置相當于從伺服器中的配置,因為後面我會将整個mysql_slave檔案夾傳到我本地伺服器中)

修改内容如下:

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置
Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

注意server-id 一定不能重複

第六步:

接下來,我們就将上述mysql_slave檔案夾傳到我本地伺服器中(通過下面的軟體将mysql_slave下載下傳到電腦本地,然後在通過這個軟體上傳到本地的Linux系統)

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置
Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第七步:

在本地Linux系統中建立docker容器docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=mysql -d --network=host -v /home/ubuntu/mysql_slave/data:/var/lib/mysql -v /home/ubuntu/mysql_slave/mysql.conf.d:/etc/mysql/mysql.conf.d mysql:5.7.22
Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第八步:

測試上面建立的容器檢視原始資料庫中資訊mysql -uroot -pmysql -h 127.0.0.1 --port=8306
Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第九步:

備份主伺服器原有資料到從伺服器

在遠端騰訊雲伺服器中執行資料庫備份指令:備份主伺服器原有資料到從伺服器$ mysqldump -u使用者名 -p密碼 --all-databases --lock-all-tables > ~/master_db.sql

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置
all-databases :導出所有資料庫lock-all-tables :執行操作時鎖住所有表,防止操作時有資料修改~/master_db.sql :導出的備份資料(sql檔案)位置,可自己指定

同時将主伺服器中備份的master_db.sql檔案上傳到本地Linux系統中

先從遠端騰訊雲伺服器(主)下載下傳到本地

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

在從本地上傳到Linux系統中(從)

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第十步:

進入本地伺服器(從)在docker容器中導入資料:mysql -uroot -pmysql -h127.0.0.1 --port=8306 < ~/master_db.sql

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

執行完成後,主資料庫内容就備份到了從伺服器中

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第十一步:

登入遠端騰訊雲主伺服器Ubuntu中的mysql,建立用于從伺服器同步資料使用的帳号GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by '[email protected]';重新整理權限FLUSH PRIVILEGES;
Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第十二步 擷取主伺服器的二進制日志資訊

show variables like 'log_bin';SHOW MASTER STATUS;SHOW MASTER STATUS;
Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

第十三步:

在本地Linux系統中進入docker中的MySQL,執行以下指令

change master to master_host='遠端伺服器IP(主)', master_user='上面建立授權的使用者名', master_password='上面建立授權的密碼',master_log_file='對應上面File', master_log_pos=對應上面的Position;

master_host:主伺服器Ubuntu的ip位址master_log_file: 前面查詢到的主服master_log_pos: 前面查詢到的主伺服器日志檔案位置

第十四步:

啟動slave伺服器,并檢視同步狀态

start slave;show slave status G

檢查狀态:show slave status G

如果标記的地方兩個參數都是yes說明就啟動成功了。

Destoon資料庫配置檔案在哪_MySQL資料庫備份之主從同步配置

後面就可以測試了,在遠端的伺服器MySQL中建立庫擷取操作表,再到本地檢視是否也發生變化。隻要資料庫内容保持一緻,說明就配置成功了。

出處:https://www.cnblogs.com/wendj/p/11023497.html

想了解更多關于資料庫、雲技術嗎?

快來關注”資料和雲“公衆号,”雲和恩墨“官方網站,我們期待與大家一同學習和進步。

繼續閱讀