mysql 主主叢集配置文件(測試環境已透過,my.cnf檔案根據自己伺服器自行修改)

lcl150800發表於2016-08-02
mysql 主主複製
主節點ip:192.168.56.2
從節點ip:192.168.56.3


1 雙節點新增同步賬戶並關閉資料庫:
節點 1 
注意ip指定為從節點ip
[root@mysql1 home]# mysql -uroot -poracle
mysql> GRANT REPLICATION SLAVE ON *.* to 'syc'@'192.168.56.3' identified by 'syc';
Query OK, 0 rows affected (0.03 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.33 sec)
mysql> exit
Bye
[root@mysql1 home]# /etc/init.d/mysql stop
Shutting down MySQL..[確定]


節點2
注意其中ip指定主節點ip
[root@mysql2 home]# mysql -uroot -poracle
mysql> GRANT REPLICATION SLAVE ON *.* to 'syc'@'192.168.56.2' identified by 'syc';
Query OK, 0 rows affected (0.03 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.33 sec)
mysql> exit
Bye
[root@mysql2 home]# /etc/init.d/mysql stop
Shutting down MySQL..[確定]
2 修改my.cnf檔案
節點1 my.cnf檔案
[root@mysql1 home]# vi /etc/my.cnf         
[client]
#客戶端字符集
default-character-set=utf8
socket = /home/mysql/mysql.sock
[mysqld]
socket = /home/mysql/mysql.sock
server-id=1
#開啟binlog
log-bin=mysql-bin
# 這個引數用來配置從伺服器的更新是否寫入二進位制日誌,這個選項預設是不開啟的,但是,如果這個從伺服器B是伺服器A的從伺服器,
# 同時還作為伺服器C的主伺服器,那麼就需要開發這個選項,這樣它的從伺服器C才能獲得它的二進位制日誌進行同步操作
log-slave-updates
# 在複製過程中,由於各種的原因,從伺服器可能會遇到執行BINLOG中的SQL出錯的情況,在預設情況下,伺服器會停止複製程式,不再進行同步,等到使用者自行來處理。
slave-skip-errors=all
# 這個引數是對於MySQL系統來說是至關重要的,他不僅影響到Binlog對MySQL所帶來的效能損耗,而且還影響到MySQL中資料的完整性
sync_binlog=1
# 應設為整個結構中伺服器的總數
auto-increment-increment = 2
# 設定資料庫中自動增長的起點,避免兩臺伺服器資料同步時出現主鍵衝突
auto-increment-offset = 1
#字符集
character-set-server=utf8
#不區分大小寫
lower_case_table_names=1
[mysql]
#字符集
default-character-set=utf8
auto-rehash


節點2 my.cnf檔案
[root@mysql2 home]# vi /etc/my.cnf
[client]
socket = /home/mysql/mysql.sock
#客戶端字符集
default-character-set=utf8
[mysqld]
server-id=2
socket = /home/mysql/mysql.sock
#字符集
character-set-server=utf8
#不區分大小寫
lower_case_table_names=1
#開啟binlog
log-bin=mysql-bin
# 這個引數用來配置從伺服器的更新是否寫入二進位制日誌,這個選項預設是不開啟的,但是,如果這個從伺服器B是伺服器A的從伺服器,
# 同時還作為伺服器C的主伺服器,那麼就需要開發這個選項,這樣它的從伺服器C才能獲得它的二進位制日誌進行同步操作
log-slave-updates
#在複製過程中,由於各種的原因,從伺服器可能會遇到執行BINLOG中的SQL出錯的情況,在預設情況下,伺服器會停止複製程式,不再進行同步,等到使用者自行來處理。
slave-skip-errors=all
#這個引數是對於MySQL系統來說是至關重要的,他不僅影響到Binlog對MySQL所帶來的效能損耗,而且還影響到MySQL中資料的完整性
sync_binlog=1
# 應設為整個結構中伺服器的總數
auto-increment-increment = 2
# 設定資料庫中自動增長的起點,避免兩臺伺服器資料同步時出現主鍵衝突
auto-increment-offset = 1
[mysql]
#字符集
default-character-set=utf8
auto-rehash


3 啟動mysql資料庫
節點1
[root@mysql1 home]# /etc/init.d/mysql start
Starting MySQL..[確定]
節點2 
[root@mysql2 home]# /etc/init.d/mysql start
Starting MySQL.[確定]


記錄binlog位置
節點1 
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 |      120 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)


節點2
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      120 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)


4 啟動複製
主節點
mysql> stop slave;
mysql> change master to master_host='192.168.56.3',master_user='syc',master_password='syc',master_port=3306,master_log_file='mysql-bin.000002',master_log_pos=120;
mysql> start slave;
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.56.2
                  Master_User: syc
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 927
               Relay_Log_File: mysql2-relay-bin.000002
                Relay_Log_Pos: 793
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
            
從節點
mysql> stop slave;
mysql> change master to master_host='192.168.56.2',master_user='syc',master_password='syc',master_port=3306,master_log_file='mysql-bin.000003',master_log_pos=120;
mysql> start slave;
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.56.3
                  Master_User: syc
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 927
               Relay_Log_File: mysql1-relay-bin.000002
                Relay_Log_Pos: 580
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes


測試:
主節點
mysql> create database bbbbb;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| aaaaa              |
| bbbbb              |
| mysql              |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.00 sec)
從節點:
mysql> create database aaaaa;
Query OK, 1 row affected (0.01 sec)


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| aaaaa              |
| bbbbb              |
| mysql              |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.00 sec)


測試完成:
注意:
show slave status\G
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
這兩項必須是yes


如果出現以下問題:
             Slave_IO_Running: Connecting
            Slave_SQL_Running: Yes
需要檢視是否建立使用者許可權時出現問題或連結資訊錯誤或賬號失效。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22390488/viewspace-2122855/,如需轉載,請註明出處,否則將追究法律責任。

相關文章