[置顶] Galera Cluster for MySQL 集群备忘(Centos7)

时间:2022-09-19 19:46:19

博主的第一篇文章,写的不完善的地方,请大家多担待.

做程序员已经好久了,从来都是只索取不奉献。遇到问题都是在网上找别人分享的博客来参考,自己却没有分享过。惭愧~


本文主要针对MySQL主主集群配置方案,且服务器的环境为Centos7


1.rpm文件下载路径:

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

下载时最好下载对应最新的安装包,我下载的是5.6版本的

[置顶]        Galera Cluster for MySQL 集群备忘(Centos7)

  使用 (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%";

查看配置的情况:

[置顶]        Galera Cluster for MySQL 集群备忘(Centos7)

wsrep_cluster_size 后面的值为多少就表示目前集群有多少个节点.



原创博客,转载请注明出处!