欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL5.7主從復(fù)制詳細(xì)配置教程

 更新時(shí)間:2022年11月02日 08:38:41   作者:youbins  
這篇文章主要介紹了MySQL5.7主從復(fù)制詳細(xì)配置教程的相關(guān)資料,需要的朋友可以參考下

1 環(huán)境準(zhǔn)備

192.168.1.34 服務(wù)器A(主機(jī))
192.168.1.35 服務(wù)器B(從機(jī))

2 安裝mysql

MySQL版本:

這里采用Server version: 5.7.35 MySQL Community Server (GPL)

我們把安裝在“服務(wù)器A”的數(shù)據(jù)庫(kù)稱作“主數(shù)據(jù)庫(kù)”、安裝在“服務(wù)器B”的數(shù)據(jù)庫(kù)稱作“從數(shù)據(jù)庫(kù)”。

2.1 開放端口

確保服務(wù)器A與服務(wù)器B上的3306端口可以互訪。

3 設(shè)置主庫(kù)

進(jìn)行下面的配置前,假設(shè)你已經(jīng)在兩臺(tái)服務(wù)器AB上安裝成功MySQL服務(wù)。

192.168.1.34 服務(wù)器A(主機(jī))

3.1 修改MySQL配置文件

編輯mysql配置文件/etc/my.cnf,添加如下的內(nèi)容:

[mysqld]
log-bin=mysql-bin
server-id=1

保存修改內(nèi)容并重啟MySQL服務(wù)。

3.2 創(chuàng)建一個(gè)用戶用于復(fù)制

所謂復(fù)制用戶,即供從數(shù)據(jù)庫(kù)使用的,從主數(shù)據(jù)庫(kù)拷貝二進(jìn)制日志信息的用戶。

用客戶端連接上MySQL服務(wù),執(zhí)行以下語句創(chuàng)建一個(gè)用于復(fù)制的用戶:

mysql> CREATE USER 'repl'@'192.168.1.%' IDENTIFIED BY 'Abc!@#123';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.%';

3.3 獲取二進(jìn)制文件位置

這些信息在后面配置從數(shù)據(jù)庫(kù)時(shí)用到。

1、阻塞數(shù)據(jù)庫(kù)寫語句

mysql> FLUSH TABLES WITH READ LOCK;

2、獲取當(dāng)前二進(jìn)制文件的名稱和位置

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |     1030 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

3.4 使用mysqldump創(chuàng)建數(shù)據(jù)快照

本指南默認(rèn)使用InnoDB存儲(chǔ)引擎。

如果在啟用主從復(fù)制前,主數(shù)據(jù)庫(kù)已存在數(shù)據(jù),那么你就需要先把這些數(shù)據(jù)拷貝到從數(shù)據(jù)庫(kù)。下面給出一個(gè)例子,將所有數(shù)據(jù)庫(kù)備份到一個(gè)叫做dbdump.db的文件:

shell> mysqldump --all-databases --master-data > dbdump.db

其中--master-data選項(xiàng)會(huì)自動(dòng)追加 CHANGE MASTER TO語句,該語句在從數(shù)據(jù)庫(kù)啟動(dòng)復(fù)制進(jìn)程時(shí)需要到。

注意:

如果你沒有使用--master-data選項(xiàng)的話,那么你需要在一個(gè)單獨(dú)的會(huì)話中鎖定所有數(shù)據(jù)表。詳情見 Section 16.1.2.3, “Obtaining the Replication Source's Binary Log Coordinates”.

4 設(shè)置從庫(kù)

192.168.1.35 服務(wù)器B(從機(jī))

4.1 修改MySQL配置文件

編輯mysql配置文件/etc/my.cnf,添加如下的內(nèi)容:

[mysqld]
server-id=2
skip_slave_start=ON

這里主要解釋一下skip_slave_start配置,ON表示數(shù)據(jù)庫(kù)啟動(dòng)時(shí)不啟動(dòng)從機(jī)的復(fù)制進(jìn)程,需要通過手動(dòng)的方式進(jìn)行啟動(dòng)。

保存修改內(nèi)容并重啟MySQL服務(wù)。

4.2 設(shè)置從庫(kù)對(duì)應(yīng)的主庫(kù)

這里主要用到 CHANGE MASTER TO語句,其基本語法如下:

mysql> CHANGE MASTER TO
    ->     MASTER_HOST='source_host_name',
    ->     MASTER_USER='replication_user_name',
    ->     MASTER_PASSWORD='replication_password',
    ->     MASTER_LOG_FILE='recorded_log_file_name',
    ->     MASTER_LOG_POS=recorded_log_position;

我們的例子對(duì)應(yīng)如下(當(dāng)中的參數(shù)見上文[設(shè)置主數(shù)據(jù)庫(kù)](#3 設(shè)置主數(shù)據(jù)庫(kù))一節(jié)):

mysql> CHANGE MASTER TO
    ->     MASTER_HOST='192.168.1.34',
    ->     MASTER_USER='repl',
    ->     MASTER_PASSWORD='Abc!@#123',
    ->     MASTER_LOG_FILE='mysql-bin.000001',
    ->     MASTER_LOG_POS=1030;

4.3 導(dǎo)入全新的數(shù)據(jù)的情況

即主庫(kù)和備庫(kù)都是新建的,不存在舊庫(kù)舊表舊數(shù)據(jù),且主庫(kù)已經(jīng)啟用二進(jìn)制日志,備庫(kù)已指定主庫(kù)及當(dāng)前位置。這時(shí)你想要將其它的數(shù)據(jù)庫(kù)備份下來導(dǎo)入到當(dāng)前的主備數(shù)據(jù)庫(kù)中,你只需要在主庫(kù)中執(zhí)行導(dǎo)入命令即可(不能再備庫(kù)執(zhí)行導(dǎo)入語句):

shell> mysql -h '192.168.1.34' < fulldb.dump

4.4 主庫(kù)已存在數(shù)據(jù)的情況

即主庫(kù)在啟用二進(jìn)制日志前已存在數(shù)據(jù),你在啟用從庫(kù)復(fù)制進(jìn)程前需要把主庫(kù)的備份快照導(dǎo)入到從庫(kù)中,然后才能啟用從庫(kù)的復(fù)制進(jìn)程。

1、新建主庫(kù)快照

shell> mysqldump --all-databases --master-data > dbdump.db

2、導(dǎo)入到從庫(kù)中

shell&gt; mysql -h '192.168.1.35' &lt; fulldb.dump

4.5 啟用從庫(kù)復(fù)制進(jìn)程

mysql> START SLAVE;

驗(yàn)證主從復(fù)制是否啟動(dòng)成功

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.34
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 2096
               Relay_Log_File: 192-relay-bin.000007
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
......

如上,只有Slave_IO_RunningSlave_SQL_Running同時(shí)都是Yes的時(shí)候表示主從復(fù)制配置成功。

5 互為主從設(shè)置

前面兩個(gè)章節(jié)講了如何配置主從復(fù)制,即服務(wù)器A的數(shù)據(jù)庫(kù)作為主庫(kù),服務(wù)器B的數(shù)據(jù)庫(kù)作為從庫(kù);那么只要按照相反的步驟再設(shè)置一遍,即服務(wù)器B的數(shù)據(jù)庫(kù)作為主庫(kù),服務(wù)器A的數(shù)據(jù)庫(kù)作為從庫(kù)。這樣就可以使得服務(wù)器A的數(shù)據(jù)庫(kù)和服務(wù)器B的數(shù)據(jù)庫(kù)互為主從了。

到此這篇關(guān)于MySQL5.7主從復(fù)制詳細(xì)配置教程的文章就介紹到這了,更多相關(guān)MySQL5.7主從復(fù)制 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論