中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mycat中間件實現Percona Cluster集群讀寫分離

發布時間:2020-08-13 12:40:07 來源:ITPUB博客 閱讀:354 作者:z597011036 欄目:MySQL數據庫

Mycat實現讀寫分離架構圖:

Mycat中間件實現Percona Cluster集群讀寫分離

Mycat主從自動切換架構圖:

Mycat中間件實現Percona Cluster集群讀寫分離

Mycat下載地址:http://dl.mycat.io/1.6.7.3/20190828135747/Mycat-server-1.6.7.3-release-20190828135747-linux.tar.gz

Percona-XtraDB-Cluster下載地址:https://www.percona.com/downloads/Percona-XtraDB-Cluster-57/LATEST/

Percona-XtraBackup下載地址: https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/

yum倉庫地址:https://www.percona.com/downloads/percona-release/redhat/ 

1.下載,安裝Percona-XtraDB-Cluster(三臺都需要裝)
[root@k8s01 ~]# rpm -ivh https://www.percona.com/redir/downloads/percona-release/redhat/1.0-13/percona-release-1.0-13.noarch.rpm

[root@k8s01 ~]# yum repolist

[root@k8s01 ~]# rpm -ivh percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm

[root@k8s01 ~]# yum install Percona-XtraDB-Cluster-57 -y

2.修改配置,啟動服務(k8s01節點)

[root@k8s01 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf

log-bin=k8s01-bin
log-bin-index=k8s01-bin-index

[root@k8s01 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf

[mysqld]

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_address=gcomm://192.168.54.129,192.168.54.130,192.168.54.128

binlog_format=ROW

default_storage_engine=InnoDB

wsrep_slave_threads= 8

wsrep_log_conflicts

innodb_autoinc_lock_mode=2

wsrep_node_address=192.168.54.128      --三個節點值不一樣

wsrep_cluster_name=mycluster

wsrep_node_name=k8s01

pxc_strict_mode=ENFORCING

wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth="sstuser:s3cretPass"

[root@k8s01 ~]# mysql_install_db --defaults-file=/etc/percona-xtradb-cluster.cnf --datadir=/var/lib/mysql   --初使化數據

[root@k8s01 ~]# systemctl start mysql@bootstrap.service         --第一次啟動,不需要同步數據
[root@k8s01 ~]# ps -ef | grep mysql
root      60672  54285  0 14:56 pts/1    00:00:00 tailf /var/log/mysqld.log
root      66031      1  0 15:03 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr  --wsrep-new-cluster
mysql     66568  66031  6 15:03 ?        00:00:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --wsrep-provider=/usr/lib64/galera3/libgalera_smm.so --wsrep-new-cluster --log-error=
/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock --wsrep_start_position=00000000-0000-0000-0000-000000000000:-1root      66763  33815  0 15:04 pts/0    00:00:00 grep --color=auto mysql

[root@k8s01 ~]# cat ~/.mysql_secret
# Password set for user 'root@localhost' at 2019-11-15 14:40:31
ya;-t*taM8T<            --mysql登陸密碼
[root@k8s01 ~]# mysql -u root -p'ya;-t*taM8T<'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.7.27-30-57-log
Copyright (c) 2009-2019 Percona LLC and/or its affiliates
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> set password=password('System135');
Query OK, 0 rows affected, 1 warning (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
[root@k8s01 ~]# mysql -u root -pSystem135
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.7.27-30-57-log Percona XtraDB Cluster (GPL), Release rel30, Revision 64987d4, WSREP version 31.39, wsrep_31.39
Copyright (c) 2009-2019 Percona LLC and/or its affiliates
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant all privileges on *.* to sstuser@'%' identified by 's3cretPass';      --創建percona xtradb cluster用戶
Query OK, 0 rows affected, 1 warning (0.05 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye
[root@k8s01 ~]#

3.修改配置,啟動服務(k8s02節點)

[root@k8s02 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf

log-bin=k8s01-bin
log-bin-index=k8s01-bin-index

[root@k8s02 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf

[mysqld]

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_address=gcomm://192.168.54.128,192.168.54.129,192.168.54.130

binlog_format=ROW

default_storage_engine=InnoDB

wsrep_slave_threads= 8

wsrep_log_conflicts

innodb_autoinc_lock_mode=2

wsrep_node_address=192.168.54.129

wsrep_cluster_name=mycluster

wsrep_node_name=k8s02

pxc_strict_mode=ENFORCING

wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth="sstuser:s3cretPass"

[root@k8s02 ~]# systemctl start mysql

4.修改配置,啟動服務(k8s03節點)

[root@k8s03 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf 

log-bin=k8s01-bin
log-bin-index=k8s01-bin-index
[root@k8s03 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf 

[mysqld]

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_address=gcomm://192.168.54.128,192.168.54.129,192.168.54.130
binlog_format=ROW

default_storage_engine=InnoDB

wsrep_slave_threads= 8

wsrep_log_conflicts

innodb_autoinc_lock_mode=2

wsrep_node_address=192.168.54.130

wsrep_cluster_name=mycluster

wsrep_node_name=k8s03

pxc_strict_mode=ENFORCING

wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth="sstuser:s3cretPass"

[root@k8s03 ~]# systemctl start mysql

5.測試Percona-XtraDB-Cluster集群數據同步

k8s01節點:

[root@k8s01 ~]# mysql -u root -pSystem135
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 5.7.27-30-57-log Percona XtraDB Cluster (GPL), Release rel30, Revision 64987d4, WSREP version 31.39, wsrep_31.39
Copyright (c) 2009-2019 Percona LLC and/or its affiliates
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database wuhan charset utf8;
Query OK, 1 row affected (0.01 sec)
mysql> use wuhan
Database changed
mysql> create table t (a int primary key,b int);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t values(1,2),(2,3);
Query OK, 2 rows affected (0.02 sec)
Records: 2  Duplicates: 0  Warnings: 0
mysql> select * from t;
+---+------+
| a | b    |
+---+------+
| 1 |    2 |
| 2 |    3 |
+---+------+
2 rows in set (0.00 sec)
mysql> exit
Bye
[root@k8s01 ~]#

k8s02節點:

[root@k8s02 ~]# mysql -u root -pSystem135
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.27-30-57-log Percona XtraDB Cluster (GPL), Release rel30, Revision 64987d4, WSREP version 31.39, wsrep_31.39
Copyright (c) 2009-2019 Percona LLC and/or its affiliates
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use wuhan
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from t;
+---+------+
| a | b    |
+---+------+
| 1 |    2 |
| 2 |    3 |
+---+------+
2 rows in set (0.01 sec)
mysql> exit
Bye
[root@k8s02 ~]#

6.下載,安裝Mycat中間件

[root@[root@k8s01 soft]# rpm -ivh jdk-8u221-linux-x64.rpm
warning: jdk-8u221-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8-2000:1.8.0_221-fcs        ################################# [100%]
Unpacking JAR files...
 tools.jar...
 plugin.jar...
 javaws.jar...
 deploy.jar...
 rt.jar...
 jsse.jar...
 charsets.jar...
 localedata.jar...
[root@k8s01 soft]# tar xvf Mycat-server-1.6.7.3-release-20190828135747-linux.tar.gz  -C /usr/local/
[root@k8s01 soft]# cd /usr/local/mycat/conf/

[root@k8s01 conf]# vim schema.xml

Mycat中間件實現Percona Cluster集群讀寫分離 [root@k8s01 conf]# vim server.xml

<user name="root" defaultAccount="true">
        <property name="password">System135</property>
        <property name="schemas">hubei</property>

</user>

[root@k8s01 conf]# ../bin/mycat restart
Stopping Mycat-server...
Mycat-server was not running.
Starting Mycat-server...
[root@k8s01 conf]# netstat -antulp | grep 9066
tcp6       0      0 :::9066                 :::*                    LISTEN      100087/java        
[root@k8s01 conf]#

7.使用Mycat驗證讀,寫數據

(1).查看管理端口服務

Mycat中間件實現Percona Cluster集群讀寫分離

(2).查看數據,如果想要看負載均衡效果,必須退出終端,再登陸。

Mycat中間件實現Percona Cluster集群讀寫分離

(3).k8s01節點寫入數據,k8s02和k8s03讀數據

Mycat中間件實現Percona Cluster集群讀寫分離

8.k8s01節點宕機后,k8s02節點負責寫入數據,k8s03讀數據

[root@k8s01 conf]# systemctl stop mysql@bootstrap.service

[root@k8s01 conf]# netstat -antulp | grep 3306
tcp6       0      0 10.4.132.50:60568       10.4.132.42:3306        ESTABLISHED 100087/java        
tcp6       0      0 10.4.132.50:51072       10.4.132.66:3306        ESTABLISHED 100087/java        
[root@k8s01 conf]# ps -ef | grep mysqld
root     115559  33815  0 16:58 pts/0    00:00:00 grep --color=auto mysqld

[root@k8s01 conf]# 
(1).關閉k8s01節點的mysql,寫入一條數據,讀取一次。

Mycat中間件實現Percona Cluster集群讀寫分離

(2).寫入節點是k8s02,讀節點是k8s03

Mycat中間件實現Percona Cluster集群讀寫分離

錯誤處理:

(1).Mysql沒有初使化數據

2019-11-15T06:33:04.384904Z 0 [Note] Server socket created on IP: '::'.
2019-11-15T06:33:04.385584Z 0 [Warning] Failed to open optimizer cost constant tables

2019-11-15T06:33:04.385659Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
2019-11-15T06:33:04.385668Z 0 [ERROR] Fatal error: Failed to initialize ACL/grant/time zones structures or failed to remove temporary table files.

2019-11-15T06:33:04.385687Z 0 [ERROR] Aborting

解決方法:

[root@k8s01 conf]# mysql_install_db --defaults-file=/etc/percona-xtradb-cluster.cnf --datadir=/var/lib/mysql    --需要初使化數據

(2).第一個節點第一次啟動必須要創建新的集群

2019-11-15T06:41:35.761089Z 0 [Note] WSREP: Current view of cluster as seen by this node
view ((empty))
2019-11-15T06:41:35.761280Z 0 [ERROR] WSREP: failed to open gcomm backend connection: 110: failed to reach primary view (pc.wait_prim_timeout): 110 (Connection timed out)
         at gcomm/src/pc.cpp:connect():159

2019-11-15T06:41:35.761309Z 0 [ERROR] WSREP: gcs/src/gcs_core.cpp:gcs_core_open():209: Failed to open backend connection: -110 (Connection timed out)
2019-11-15T06:41:35.761583Z 0 [ERROR] WSREP: gcs/src/gcs.cpp:gcs_open():1514: Failed to open channel 'pxc_1' at 'gcomm://192.168.54.128,192.168.54.129,192.168.54.130': -110 (Connection timed out)
2019-11-15T06:41:35.761597Z 0 [ERROR] WSREP: gcs connect failed: Connection timed out
2019-11-15T06:41:35.761600Z 0 [ERROR] WSREP: Provider/Node (gcomm://192.168.54.128,192.168.54.129,192.168.54.130) failed to establish connection with cluster (reason: 7)
2019-11-15T06:41:35.761603Z 0 [ERROR] Aborting

解決方法:

[root@k8s01 ~]# systemctl start mysql@bootstrap.service         --必須添加 @bootstrap.service啟動服務 

(3).沒有創建wsrep.cnf用戶名

2019-11-15T07:27:59.158666Z 0 [ERROR] WSREP: Command did not run: wsrep_sst_xtrabackup-v2 --role 'donor' --address '192.168.54.129:4444/xtrabackup_sst//1' --socket '/var/lib/mysql/mysql.sock' --datadir '/var/lib/mysql/' --defaults-file '/etc/my.cnf' --defaults-group-suf
fix '' --mysqld-version '5.7.27-30-57'   '' --gtid '19a21dce-0776-11ea-8879-92a989219bb1:2'2019-11-15T07:27:59.159302Z 0 [Warning] WSREP: Protocol violation. JOIN message sender 0.0 (k8s01) is not in state transfer (SYNCED). Message ignored.
2019-11-15T07:27:59.159405Z 5 [Note] WSREP: Synchronized with group, ready for connections

解決方法:

[root@k8s01 conf]# grep sst /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth="sstuser:s3cretPass"
[root@k8s01 conf]#

mysql> grant all privileges on *.* to sstuser@'%' identified by 's3cretPass';     --創建用戶
Query OK, 0 rows affected, 1 warning (0.05 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye
[root@k8s01 ~]#

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁阳县| 壶关县| 大悟县| 宁远县| 时尚| 宜兰市| 盐城市| 沐川县| 长武县| 延庆县| 定州市| 论坛| 资讯| 双流县| 周口市| 穆棱市| 德令哈市| 拉萨市| 南雄市| 金坛市| 台中市| 绵竹市| 镇远县| 凤台县| 富宁县| 双辽市| 尤溪县| 永登县| 佛教| 潞城市| 垫江县| 延吉市| 呈贡县| 循化| 北川| 区。| 石嘴山市| 剑阁县| 永城市| 乡城县| 连州市|