如何在Ubuntu_16_04下使用MySql的GR

1、前言

該文章主要是記錄下從一個純淨的系統開始如何安裝MySql 5.7.17 而且使用GR,以便於本身後期查看以及分享給他人。mysql

 

2、安裝mysql

由於默認ubuntu的源並非最新的mysql因此咱們須要以下幾個步驟安裝最新的安裝包,固然咱們這裏仍是使用的apt去安裝。sql

 

1.下載apt倉庫

sudo wget https://repo.mysql.com//mysql-apt-config_0.8.3-1_all.deb

 

 

2.安裝apt倉庫

sudo dpkg -i mysql-apt-config_0.8.3-1_all.deb

 

在安裝的過程當中會出現一個界面讓其選擇版本,這裏你們只要讓第一個選擇 5.7 版本便可,固然你能夠選擇 8.0。數據庫

 

3.升級apt倉庫並安裝mysql

sudo apt-get update
sudo apt-get install mysql-server

 

 

到此爲止咱們就已經安裝了最新的MySql版本了,下面就是關鍵的配置部分建議你們先通讀一遍,不要直接上來按照這個來。bootstrap

 

3、開啓GR

1.修改配置

首先打開/etc/mysql/下的my.cnf配置並寫入如下配置信息:ubuntu

server_id=1
bind-address=0.0.0.0
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "10.0.0.4:24901"
loose-group_replication_group_seeds= "10.0.0.4:24901,10.0.0.5:24902,10.0.0.6:24903"
loose-group_replication_bootstrap_group= off

 

這裏有一個配置想要說明下,其中「server_id」必須保證每一個機器都不相同,能夠直接使用ip地址的第四部分,「loose-group_replication_group_nam」在每一個機器上都要一致,這個等同於一個組的標識。剩下的另外一個不一樣的就是參數「loose-group_replication_local_address」這個必須指定爲當前機器的IP地址,然後面的端口則是表示GR須要監聽的端口,只要保證在其餘機器中參數「loose-group_replication_group_seeds」中的機器的IP地址和端口正確能夠任意修改該端口(該端口是獨立於mysql默認的3306端口的)。vim

完成以上操做以後重啓mysql服務測試

sudo service mysql restart

 

 

2.新建用戶

首先咱們鏈接到當前數據庫中spa

mysql -u root -p

 

 

執行如下sql語句插件

1 mysql> SET SQL_LOG_BIN=0;
2 mysql> CREATE USER rpl_user@'%';
3 mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';
4 mysql> FLUSH PRIVILEGES; #在從數據庫不須要執行
5 mysql> SET SQL_LOG_BIN=1;
6 mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass'  FOR CHANNEL 'group_replication_recovery';

 

若是是生產環境,用戶能夠本身設置對應的帳戶和密碼,這裏做爲測試就直接使用官方提供的了。rest

 

3.安裝插件

咱們繼續執行對應的sql語句

mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';

 

若是咱們想查看當前是否已經安裝了該插件,能夠經過下面的語句查詢

mysql> SHOW PLUGINS;

 

 

4.配置Hosts

在開啓最終的GR以前咱們須要修改對應的hosts,將主機名和IP對應起來,不然後面在鏈接到其餘節點的時候會發生沒法鏈接,由於mysql依賴主機名去鏈接。

打開hosts

sudo vim /etc/hosts

 

 

寫入以下內容(我當前的環境和機器名是這樣的)

10.0.0.4 mysql-1
10.0.0.5 mysql-2
10.0.0.6 mysql-3

 

完成上面的配置後退出,咱們進入到mysql中接着繼續執行

 

5.開啓GR

如下方式是在主節點的開啓方式(只在咱們第一次安裝的時候須要這樣後面不須要)

mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;

 

在從屬節點上只要執行如下一句

mysql> START GROUP_REPLICATION;

 

 

若是咱們要查看當前是否加入成功,能夠經過下面的語句查看:

mysql> SELECT * FROM performance_schema.replication_group_members;

 

 

到此爲止全部的配置就都結束了,其餘從屬節點只要按照上面的步驟執行便可,對於測試,咱們須要在主節點上新建數據庫,建立表並寫入數據,其餘數據庫也會同步。而後關閉主節點以後,經過如下語句

咱們能夠查詢當前哪一個節點爲主節點了:

mysql> select *from performance_schema.replication_group_members where member_id =(select variable_value from performance_schema.global_status WHERE VARIABLE_NAME= 'group_replication_primary_member');
相關文章
相關標籤/搜索