CentOS 7 搭建PXC 数据库集群
Posted zbseoag
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7 搭建PXC 数据库集群相关的知识,希望对你有一定的参考价值。
CentOS 7 搭建PXC 数据库集群
PXC( Percona XtraDB Cluster ) 特点如下:
Percona 下载地址
https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/
所有下载安装包如下:
Percona-XtraDB-Cluster
Percona-XtraBackup
jemalloc
qpress
执行命令:
#先删除预装的 MariaDB
yum -y remove mari*
#解压所有安装包,到 /home 目录,执行批量安装
yum localinstall *.rpm
#查看 root 密码
cat /var/log/mysqld.log | grep "A temporary password"
#修改 root 密码,建议先创建快照,以便恢复.
mysql_secure_installation
#登录 mysql
mysql -h127.0.0.1 -u root -p
#创建 admin 帐号
mysql> CREATE USER ‘admin‘@‘%‘ IDENTIFIED BY ‘Abc_123456‘;
mysql> GRANT all privileges ON *.* TO ‘admin‘@‘%‘;
mysql> FLUSH PRIVILEGES;
===>添加在 [mysqld] 下面:
最终实现的效果是数据库管理工具连接这三个数据库节点,然后,任意操作其中一个数据库,刷新另外两个,都能看到变一致的改变.
1.同步复制,事务要么在所有节点提交或不提交,保证了数据的强一致性。
2.多主复制,可以在任意节点进行写操作。
3.在从服务器上并行应用事件,真正意义上的并行复制。
Percona 下载地址
所有下载安装包如下:
Percona-XtraDB-Cluster
Percona-XtraBackup
jemalloc
qpress
执行命令:
#先删除预装的 MariaDB
yum -y remove mari*
#解压所有安装包,到 /home 目录,执行批量安装
yum localinstall *.rpm
#查看 root 密码
cat /var/log/mysqld.log | grep "A temporary password"
#修改 root 密码,建议先创建快照,以便恢复.
mysql_secure_installation
#登录 mysql
mysql -h127.0.0.1 -u root -p
#创建 admin 帐号
mysql> CREATE USER ‘admin‘@‘%‘ IDENTIFIED BY ‘Abc_123456‘;
mysql> GRANT all privileges ON *.* TO ‘admin‘@‘%‘;
mysql> FLUSH PRIVILEGES;
mysql>exit
#修改 mysql 配置文件
vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
===>添加在 [mysqld] 下面:
[mysqld]
character_set_server=utf8
bind-address=0.0.0.0
#跳过DNS解析
skip-name-resolve
#修改集群配置文件
vi /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
===>对照配置文件,修改这些地方
[mysqld]
#集群的名称
wsrep_cluster_name=pxc-cluster
#集群所有节点服务器IP地址
wsrep_cluster_address=gcomm://192.168.100.14,192.168.100.15,192.168.100.16
#当前节点的名称
wsrep_node_name=pxc1
#当前节点的IP
wsrep_node_address=192.168.99.151
#同步方法(mysqldump、rsync、xtrabackup)
wsrep_sst_method=xtrabackup-v2
#同步使用的帐户(即:上一步创建的帐号)
wsrep_sst_auth= admin:Abc_123456
#同步严厉模式
pxc_strict_mode=ENFORCING
#基于ROW复制(安全可靠)
binlog_format=ROW
#默认引擎
default_storage_engine=InnoDB
#主键自增长不锁表
innodb_autoinc_lock_mode=2
#把 SELINUX 值设置成 disabled
vi /etc/selinux/config
#禁止 mysql 自启动
chkconfig mysqld off
#开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
#重启服务器
reboot
至此,第一个节点服务器就建好了,如果你用的虚拟机的话,复制该系统两份.
#修改 server-id,每个集群中,编号唯一,可改成1.2.3编号
vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
三台机器,把第一台作为主节点启动,创建集群,另外两台非主节点,直接启动 mysql 服务即可加入集群.
#主节点启动
systemctl start [email protected]
#非主节点启动
service mysql start
另外注意一点,集群中,半数或半数以上的节点挂了,集群也就挂了.当重新启动集群时,能作为主节点启动的,往往是那台最后挂的服务器,因为它保存的数据是最完整的.
#查看哪能节点服务器能作为主节点启动
vi /var/lib/mysql/grastate.dat
找到 "safe_to_bootstrap: 0" 如果是 1 表示可以作为主节点启动,当三个节点同时挂了,那么全都是0,这时手动修改其中一个为1就好了.
最终实现的效果是数据库管理工具连接这三个数据库节点,然后,任意操作其中一个数据库,刷新另外两个,都能看到变一致的改变.
以上是关于CentOS 7 搭建PXC 数据库集群的主要内容,如果未能解决你的问题,请参考以下文章