mysql 主主叢集配置文件(測試環境已透過,my.cnf檔案根據自己伺服器自行修改)
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
需要檢視是否建立使用者許可權時出現問題或連結資訊錯誤或賬號失效。
主節點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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Docker環境搭建redis叢集(主從模式)DockerRedis模式
- 基於docker環境下搭建redis主從叢集DockerRedis
- nginx主主叢集Nginx
- docker 配置 Mysql主從叢集DockerMySql
- MySQL主主複製+Keepalived打造高可用MySQL叢集MySql
- proc 開發環境配置(測試透過)開發環境
- MySQL叢集之 主從複製 主主複製 一主多從 多主一叢 實現方式MySql
- MySQL叢集搭建(1)-主備搭建MySql
- mysql5.6主主叢集自動同步指令碼MySql指令碼
- keepalived與mysql主主叢集自動切換MySql
- mysql主主複製+keepalived 打造高可用mysql叢集薦MySql
- 新環境搭建Mysql主從MySql
- mysql8.0以後的版本,進行多主一從的叢集環境搭建MySql
- 生產環境mysql主主同步主鍵衝突處理MySql
- Windows 環境下,MySQL 的主從複製和主主複製WindowsMySql
- windows環境下,Mysql的主從複製和主主複製WindowsMySql
- CentOS 7.9 環境下搭建k8s叢集(一主兩從)CentOSK8S
- 自己營造ORACLE測試環境Oracle
- 7、tomcat叢集+MySQL主從複製TomcatMySql
- 高可用叢集環境搭建-留檔
- win10如何用登錄檔修改主頁_win10透過登錄檔修改瀏覽器主頁步驟Win10瀏覽器
- 根據ip列表檢測主機狀態(shell指令碼)指令碼
- 用 Docker 構建 MySQL 主從環境DockerMySql
- MySQL叢集搭建(6)-雙主+keepalived高可用MySql
- Docker Compose搭建MySQL主從複製叢集DockerMySql
- 達夢資料庫DM8主備叢集測試記錄資料庫
- 【RAC】Oracle RAC叢集環境下日誌檔案結構Oracle
- abmr:塊恢復特性測試自己主動
- LNMP 分散式叢集(三):MySQL主從資料庫伺服器的搭建LNMP分散式MySql資料庫伺服器
- lustre檔案系統環境搭建及測試
- 【MySQL】my.cnf 配置檔案MySql
- 基於Dokcer搭建Redis叢集(主從叢集)Redis
- Oracle根據主鍵查詢外來鍵Oracle
- Zookeeper 叢集環境搭建
- MySQL主從同步讀寫分離的叢集配置MySql主從同步
- Redis主從同步叢集搭建Redis主從同步
- 測試環境運維文章集錦運維
- MONGO 叢集 修改linux主機時間後的影響GoLinux