该文章主要是记录下从一个纯净的系统开始如何安装MySql 5.7.17 而且使用GR,以便于本身后期查看以及分享给他人。mysql
由于默认ubuntu的源并非最新的mysql因此咱们须要以下几个步骤安装最新的安装包,固然咱们这里仍是使用的apt去安装。sql
sudo wget https://repo.mysql.com//mysql-apt-config_0.8.3-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.3-1_all.deb
在安装的过程当中会出现一个界面让其选择版本,这里你们只要让第一个选择 5.7 版本便可,固然你能够选择 8.0。数据库
sudo apt-get update sudo apt-get install mysql-server
到此为止咱们就已经安装了最新的MySql版本了,下面就是关键的配置部分建议你们先通读一遍,不要直接上来按照这个来。bootstrap
首先打开/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
首先咱们链接到当前数据库中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
咱们继续执行对应的sql语句
mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
若是咱们想查看当前是否已经安装了该插件,能够经过下面的语句查询
mysql> SHOW PLUGINS;
在开启最终的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中接着继续执行
如下方式是在主节点的开启方式(只在咱们第一次安装的时候须要这样后面不须要)
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');