前段時間,老張給你們介紹了企業中主流MySQL高可用集羣架構三部曲中的前兩部,有不瞭解的同窗能夠去訪問我以前的博客內容。php
第一部曲直通車>> 企業中MySQL主流高可用架構實戰三部曲之MHAhtml
第二部曲直通車>>企業中MySQL高可用集羣架構三部曲之MM+keepalivednode
獨家新課程上線>>MySQL體系結構深刻剖析及實戰DBA視頻課程mysql
PXC 架構圖:mongodb
pxc就屬於一套近乎完美的MySQL高可用集羣架構方案;數據庫
優勢總結:bootstrap
不足之處總結:
192.168.56.100 node1 192.168.56.101 node2 192.168.56.102 node3
三臺機器的防火牆iptables都要關閉,三臺機器的server-id不能同樣。
PXC軟件包下載:
https://www.percona.com/downloads/Percona-XtraDB-Cluster-56/LATEST/
這裏我下載的是:Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64.tar.gz
接下來三臺機器上都須要針對基礎軟件包進行安裝,使用yum安裝便可,解決依賴性。
perl-IO-Socket-SSL.noarch perl-DBD-MySQL.x86_64 perl-Time-HiRes openssl openssl-devel socat
cd /usr/local/ tar -zxvf Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64.tar.gz ln -s Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64 mysql chown mysql:mysql -R mysql mkdir -p /data/mysql chown mysql:mysql -R /data/mysql
配置pxc的參數文件,這裏就比普通的MySQL參數文件多以下幾點:
說起一點注意事項:這裏binlog的格式必須row
#pxc default_storage_engine=Innodb innodb_autoinc_lock_mode=2 wsrep_cluster_name=pxc_zs ---------------集羣的名字 wsrep_cluster_address=gcomm://192.168.56.100,192.168.56.101,192.168.56.102(集羣中節點的IP) wsrep_node_address=192.168.56.100------當前機器的ip地址 wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so wsrep_sst_method=xtrabackup-v2 (sst傳輸方法) wsrep_sst_auth=sst:zs (帳號權限)
初始化數據:
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/ --defaults-file=/etc/my.cnf --user=mysql
cd /usr/local/mysql/support-files cp mysql.server /etc/init.d/mysql
[root@node1 support-files]# /etc/init.d/mysql bootstrap-pxc Bootstrapping PXC (Percona XtraDB Cluster)MySQL (Percona Xt[ OK ]ster) running (4740)
mysql> delete from mysql.user where user!='root' or host!='localhost'; mysql> grant all privileges on *.* to 'zs'@'%' identified by 'zs'; mysql> grant all privileges on *.* to 'sst'@'localhost' identified by 'zs'; mysql> flush privileges;
cd /usr/local/ tar -zxvf Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64.tar.gz ln -s Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64 mysql chown mysql:mysql -R mysql mkdir -p /data/mysql chown mysql:mysql -R /data/mysql
#pxc default_storage_engine=Innodb innodb_autoinc_lock_mode=2 wsrep_cluster_name=pxc_zs ---------------集羣的名字 wsrep_cluster_address=gcomm://192.168.56.100,192.168.56.101,192.168.56.102(集羣中節點的IP) wsrep_node_address=192.168.56.101------當前機器的ip地址 wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so wsrep_sst_method=xtrabackup-v2 (sst傳輸方法) wsrep_sst_auth=sst:zs (帳號權限)
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/ --defaults-file=/etc/my.cnf --user=mysql
cd /usr/local/mysql/support-files cp mysql.server /etc/init.d/mysql
[root@node2 mysql]# /etc/init.d/mysql start Starting MySQL (Percona XtraDB Cluster).. [ OK ]
cd /usr/local/ tar -zxvf Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64.tar.gz ln -s Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64 mysql chown mysql:mysql -R mysql mkdir -p /data/mysql chown mysql:mysql -R /data/mysql
#pxc default_storage_engine=Innodb innodb_autoinc_lock_mode=2 wsrep_cluster_name=pxc_zs ---------------集羣的名字 wsrep_cluster_address=gcomm://192.168.56.100,192.168.56.101,192.168.56.102(集羣中節點的IP) wsrep_node_address=192.168.56.102------當前機器的ip地址 wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so wsrep_sst_method=xtrabackup-v2 (sst傳輸方法) wsrep_sst_auth=sst:zs (帳號權限)
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/ --defaults-file=/etc/my.cnf --user=mysql
啓動第三個節點的服務:
cd /usr/local/mysql/support-files cp mysql.server /etc/init.d/mysql
[root@node3 mysql]# /etc/init.d/mysql start Starting MySQL (Percona XtraDB Cluster).. [ OK ]
但啓動方式不是以/etc/init.d/mysql bootstrap-pxc,換成/etc/init.d/mysql start 這種方式
三個節點都已經啓動成功,這樣在任意一個節點上面,執行一條DML語句的操做,都會同步到另外兩個節點。
至此張老師的企業級MySQL主流高可用集羣架構三部曲就完結了!有欠妥的地方,請你們多多指教。
從此還會出更多好文章奉獻給你們,技術只有在無限的分享中,獲得進一步地昇華!
讓咱們一塊兒加油!