Galera Cluster for MySQL 集群備忘(Centos7)


博主的第一篇文章,寫的不完善的地方,請大家多擔待.

做程序員已經好久了,從來都是只索取不奉獻。遇到問題都是在網上找別人分享的博客來參考,自己卻沒有分享過。慚愧~

 

本文主要針對MySQL主主集群配置方案,且服務器的環境為Centos7

 

首先使用如下命令來清理之前操作系統自帶的mysql安裝:yum -y remove mysql mysql-server mysql-libs mysql-devel
然后使用如下命令:rpm -qa | grep mysql* 查找

1.rpm文件下載路徑:

http://releases.galeracluster.com/centos/7/x86_64/

下載時最好下載對應最新的安裝包,我下載的是5.6版本的

 

  使用 (yum install -y 包名)命令進行安裝 ,安裝MySQL時可能會安裝失敗,不用擔心,依次安裝所有的

包,如果還是安裝失敗,等其他安裝包安裝好以后,重新安裝一遍

 

2.mysql 首次啟動

 使用命令:service mysql start --skip-grant-tables  開啟mysql服務

 也就是使用safe模式啟動,登錄的時候不用輸入密碼

 使用命令: mysql  登錄

 

 添加用戶名、密碼和對應數據庫的用戶名、密碼權限

  mysql> use mysql;

  mysql> update user set password=PASSWORD("密碼") where USER="用戶名"

  mysql> quit

  使用命令: service mysql  restart

  重啟mysql服務,使用創建的用戶名和密碼登錄.

  再次進入的時候回提示你設置密碼

  mysql> SET PASSWORD=PASSWORD("密碼")

  

  給對應需要訪問MySQL的用戶名和密碼進行授權,如果沒有授權,是無法遠程連接MySQL的

  授權指定端口用戶連接mysql數據庫的命令:

   mysql>GRANT ALL PRIVILEGES ON *.* TO '用戶名'@'192.168.168.72' IDENTIFIED BY '密碼' WITH    GRANT OPTION; 

 

   授權無端口限制的用戶登錄mysql數據庫:

 mysql>GRANT ALL PRIVILEGES ON *.* TO '用戶名'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;

 

3.Mysql相關環境設置

Galera 訪問默認為4567端口

MySQL訪問默認為3306端口

開啟防火牆命令:

 

systemctl stop firewalld.service(停止防火牆)

systemctl disable firewalld.service(禁止開機啟動)

firewall-cmd --zone=public --add-port=80/tcp --permanent (開啟端口)

firewall-cmd --zone=public --remove-port=80/tcp --permanent (刪除端口)

firewall-cmd --zone=public --query-port=80/tcp  --permanent (查詢是否有該端口)

firewall-cmd --reload (防火牆重設)

firewall-cmd --list-all (查看所有端口)

開啟4444 4567 4568 9200 9300  3306端口

設置MySQL開機啟動:chkconfig mysql on

 

去掉Postfix,這個可能跟MySQL配置有沖突: yum remove postfix -y

 

4.Mysql配置文件設置

 

拷貝wsrep.cnf 文件(/usr/share/doc/mysql-wsrep-server) 到 /etc/my.cnf.d/下: 

cp -r /usr/share/doc/mysql-wsrep-server/wsrep.cnf  /etc/my.cnf.d/

編輯/etc/my.cnf:

 vi  /etc/my.cnf 

添加一行: !includedir  /etc/my.cnf.d/

修改wsrep.cnf: 

vi  /etc/my.cnf.d/wsrep,cnf     (能詳細指定端口號的,最好指定詳細的端口號)

#MySQL服務器的ID,必須是唯一的

server-id=101

#galera集群的名字,必須是統一的

wsrep_cluster_name='yangchuan'

#wsrep提供者,必須配置

wsrep-provider=/usr/lib64/galera-3/libgalera_smm.so  (.so文件的路徑在哪,就配置成哪)

#wsrep節點的ID,必須是唯一的

wsrep_node_name = node1

#集群中的其他節點地址,可以使用主機名或IP

wsrep_cluster_address=gcomm://192.168.168.232:4567,192.168.168.72:4567,

#本機節點地址,可以使用主機名或IP

wsrep_node_address='192.168.168.102:4567'

#指定wsrep啟動端口號

wsrep_node_incoming_address='192.168.168.102:4567'

#一個逗號分割的節點串作為狀態轉移源,比如wsrep_sst_donor=node5,node3,如果node5可用,用node5,不可

#用node3,如果node3不可用,最后的逗號表明讓提供商自己選擇一個最優的。

wsrep_sst_donor='node1,node2,node3,'

#線程數量。參考設置:1.CPU內核數*2以上;2.其它寫節點連接總數的1/4.

wsrep_slave_threads=16

#xtrabackup使用的用戶名密碼(最好能和mysql數據庫的用戶名密碼一致)

wsrep_sst_auth=root:123456

 

其余配置暫不用修改,有需要配置的,最好了解清楚以后修改.

 

 

5.mysql 集群啟動

 

0節點啟動方式一定是空地址啟動,不用指向其他節點:

Service mysql start --wsrep-cluster-address=”gcomm://”

其余節點直接修改好配置使用service mysql start啟動就可以了

其余節點配置方式主要是修改wsrep_cluster_address=”gcomm://192.168.168.112 ”

配置方式遵循,1節點指向0節點地址,2節點指向1節點地址,依次類推.

如果節點斷開,啟動之前先執行:mysqld_safe --wsrep-recover

 會出現"Revovered position …… :38719(比較這個數字,選擇最大值的 那個數據庫服務器作為0節點啟動,個人覺得應該就是數據庫最多的那個作為0節點啟動)"

 

6.相關注意事項:

galera集群是主主集群配置,數據會同時寫入

建議集群最少配置3個節點,也就是3台服務器,避免出現"腦裂",斷開其中一個,剩下兩台還可以繼續使用

嚴禁在集群斷開的時候,在單台數據庫上進行添加數據的操作,后期想重新連接起來會比較麻煩

集群配置好了以后使用命令: mysql> show status like ''wsrep%";

查看配置的情況:

wsrep_cluster_size 后面的值為多少就表示目前集群有多少個節點.

 

 

原創博客,轉載請注明出處!http://blog.csdn.net/yangchuan_csdn91/article/details/52689981?locationNum=2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM