PXC搭建详细步骤,适合小白

时间:2024-03-15 09:41:31

PXC搭建详细步骤,适合小白

PXC搭建步骤

第一步,下载PXC组件
共包含三个安装包,Percona XtraDB Cluster,Percona XtraBackup, Percona Release。

1:登录官网:https://www.percona.com/downloads/ 国外域名, 访问速度较慢,需要耐心等待,有条件的可自行想办法提高访问及下载速度(手动捂脸)

2:下载Percona XtraDB Cluster

如图,选择要安装的MYSQL 版本(以5.7为例),点击进入
PXC搭建详细步骤,适合小白

如图,这里可以继续选择mysql的详细版本,选择完mysql版本后,选择操作系统的版本,如果不知道操作系统的版本,可选择通用版本:Linux-Generic ,选择完操作系统版本后,下边会展示出对应可选的下载链接,根据自己操作系统的位数,点击下载链接进行下载即可。一般这里会展示多个版本,随便选择一个就行。需要注意的是,这里需要下载整个包(Download Packages Separately),这里我下载到的文件名称为:Percona-XtraDB-Cluster-5.7.25-rel28-31.35.1.Linux.x86_64.ssl101.tar.gz
PXC搭建详细步骤,适合小白

3,下载Percona XtraBackup 2.4

这里的操作和第二步基本类似,需要注意的是,这里的组件版本与mysql的版本号不同步,在选择版本时需要注意,对于5.7以前的版本,这里选择2.3版本,对于5.7版本,选择2.4,对于5.8(8.0)版本,选择8.0版本即可,目前mysql的主流版本就这三种,如果使用的是其他版本的mysql,则需要自行查询对应的版本号。这里,既可以选择只下载安装包(Download Packages Separately,下载完后是.rpm文件),也可以下载整个软件包(Download All Packages Together,下载后是.tar.gz压缩包),两种方式都可选择。如果只下载安装包,安装时,使用rpm 直接安装即可,下载整个安装包,安装时,解压压缩包即可。这里以只下载安装包为例。这里我下载到的文件名称为:percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
PXC搭建详细步骤,适合小白
PXC搭建详细步骤,适合小白

4,下载Percona Release

如图,在Other Software Downloads下点击Percona Release后跳转到下载页面,然后点击redhat进入下载页面,选择要下载的版本进行下载,这里选择的是LATEST版本,下载文件名称为:
percona-release-latest.noarch.rpm
PXC搭建详细步骤,适合小白

PXC搭建详细步骤,适合小白
PXC搭建详细步骤,适合小白

第二步,将下载好的组件上传至服务器,具体操作方法及命令可自行查询,不再赘述

第三步,配置运行环境(以下以两个节点为例)

1:修改主机名(每个节点都要操作)
编辑hosts文件

vim /etc/hosts

将节点信息加入hosts文件(每个节点添加的内容一致)

xxx.xxx.xxx.xxx1 node1

xxx.xxx.xxx.xxx2 node2

这里的xxx.xxx.xxx.xxx1,xxx.xxx.xxx.xxx2分别两个节点对应的IP地址,

2:修改selinux配置(每个节点都要修改)

编辑selinux配置文件
vim /etc/selinux/config

修改selinux配置
SELINUX=disabled

3:设置防火墙,开通四个端口(每个节点都要操作)

firewall-cmd --add-port=3306/tcp --permanent

firewall-cmd --add-port=4567/tcp --permanent

firewall-cmd --add-port=4568/tcp --permanent

firewall-cmd --add-port=4444/tcp --permanent

firewall-cmd –reload

需要注意的是,对于版本较低的操作系统(好像是7.0以前的版本,具体忘记了,有兴趣自行百度),使用的是iptables防火墙,使用iptables防火墙时,开通端口的命令自行百度,这里不再赘述。总之开通3306,4567,4568,4444四个端口就行,关于这四个端口的作用,说明如下:

3306:数据库对外服务的端口号

4444:请求SST SST: 指数据一个镜象传输 xtrabackup , rsync ,mysqldump

4567: 组成员之间进行沟通的一个端口号

4568: 传输IST用的。相对于SST来说的一个增量

第四步,安装PXC

1,安装依赖包,使用yum源安装的方式,安装命令如下(每个节点都要操作)

yum install -y git scons
gcc* gcc-c++ openssl* check cmake bison \ boost-devel asio-devel libaio-devel
ncurses-devel readline-devel pam-devel \
socat perl-time-hires
perl-io-socket-ssl.noarch perl-dbd-mysql.x86_64

需要注意的是,需要在每个节点上都进行安装,另外,以上命令未一行命令,命令较长而已

2,安装PXC组件包(每个节点都要操作)

(1)安装Percona Release:

rpm -ivh percona-release-latest.noarch.rpm

(如果下载整个软件包,解压即可压缩即可)

(2)安装Percona XtraBackup:

rpm -ivh percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
或者:
yum localinstall percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
(如果下载整个软件包,解压即可压缩即可)

(3)安装Percona XtraDB Cluster :

解压压缩包
tar zxvf Percona-XtraDB-Cluster-5.7.23-rel23-31.31.1.Linux.x86_64.ssl101.tar.gz
-C /usr/local/

切换到安装目录
cd /usr/local/

创建文件夹
mkdir -p mysql

创建软连接
ln -s Percona-XtraDB-Cluster-5.7.23-rel23-31.31.1.Linux.x86_64.ssl101
mysql

3,创建用户,创建存放Mysql服务所文件的文件夹,并且授权,命令示例如下(每个节点都要操作):

查看mysql用户
id mysql

删除Mysql用户
userdel mysql

添加用户,用户名为mysql,并指定用户组为mysql
useradd -g mysql mysql

修改mysql用户的密码
passwd mysql

创建存放mysql文件的目录,其中data目录下存放数据文件,logs下用于存放mysql日志信息,temp用于存放mysql临时文件
mkdir -p /usr/local/mysql/{data,logs,tmp}

在log文件夹下创建binlog文件夹,存放mysql二进制日志文件
mkdir -p /usr/local/mysql/logs/binlog

将/usr/local/mysql/文件夹下的拥有者指定为用户组mysql下的用户mysql
chown -R mysql:mysql /usr/local/mysql/

为/usr/local/mysql/目录下的所有文件及其子目录添加可执行权限
chmod -R +x /usr/local/mysql/

4,配置mysql(每个节点都要操作)

切换为mysql用户
su - mysql

切换到mysql目录下
cd /usr/local/mysql/

创建并编辑my.cnf文件(此文件为mysql的配置文件)
vi my.cnf

向my.cnf添加mysql配置项(具体的配置可根据实际情况自行调整,以下配置仅供示例,但亲测可用)
[mysqld]

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

server-id=143

port = 3306

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/data/mysql.sock

log-error=/usr/local/mysql/data/mysqld.log

pid-file=/usr/local/mysql/data/mysqld.pid

log-bin=/usr/local/mysql/logs

slow_query_log_file =
/usr/local/mysql/data/slow.log

log_slave_updates

expire_logs_days=7

binlog_format=ROW

innodb_buffer_pool_size = 1524M

lower_case_table_names =1

explicit_defaults_for_timestamp=true

向my.cnf添加pxc配置项(具体的配置可根据实际情况自行调整,以下配置仅供示例,但亲测可用)
#pxc 此行配置为注释,用于区分mysql配置与pxc配置,便于运维
wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so

wsrep_cluster_name=pxc-nie

wsrep_cluster_address=gcomm://xxx
.xxx.xxx.xxx1, xxx.xxx.xxx.xxx2

wsrep_node_name=node1

wsrep_node_address=xxx.xxx.xxx.xxx

wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth=user:password

pxc_strict_mode=ENFORCING

binlog_format=ROW

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

这里需要注意的是,不同节点的配置文件中,以下配置项需要修改

server-id=142 各节点不能一样

wsrep_node_name=node1 修改为所在节点的主机名称(在第三步,1中为个节点指定的主机名)

wsrep_node_address=xxx.xxx.xxx.xxx 修改为当前节点的IP

wsrep_cluster_address=gcomm://xxx.xxx.xxx.xxx1, xxx.xxx.xxx.xxx2
xxx.xxx.xxx.xxx1,xxx.xxx.xxx.xxx2 分别为各节点的IP,
当前节点的ip要放在后面,不然会导致节点不能加入集群。

wsrep_sst_auth=user:password
指定pxc各节点之间用于通信的数据库用户的名称和密码
需要注意的是,当前mysq服务还未搭建成功,这个用户还未创建,当mysql服务启动后创建该用户即可,可参看后边的操作步骤

5,初始化数据(只在第一个节点执行
usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf
–datadir=/usr/local/mysql/data
–basedir=/usr/local/mysql --initialize

这里需要注意的是,初始化操作只在第一个节点执行即可,当其他节点在启动时,会通过PXC自动同步初始化的内容,因此其他节点不需要初始化操作。另外,此步骤与一般得到mnysql安装一致,会在日志文件中生成mysql服务的root用户的密码,查看日志即可,如下:

切换到data文件夹
cd /usr/local/mysql/data/

打开日志文件,查看密码
less mysqld.log

6,启动第一个节点并创建集群(只在第一个节点执行
/usr/local/mysql/bin/mysqld_safe
–defaults-file=/usr/local/mysql/my.cnf --wsrep-new-cluster --user=mysql

需要注意,此命令分为两部分,第一部分为:指定配置文件并mysql服务
/usr/local/mysql/bin/mysqld_safe
–defaults-file=/usr/local/mysql/my.cnf
第二部分为:使用mysql用户创建集群
–wsrep-new-cluster --user=mysql

另外还需要注意
在第一个节点启动后,需要在第一个节点创建pxc通信用户,该用户创建后才能继续启动其他节点的服务
如下:

登录mysql
mysql -uroot -p
(使用5中在日志中找到的密码进行登录,登录后需要修改密码,此处与常规mysql操作一致,不再赘述)

创建pxc通信用户:

grant all privileges on . to ‘user’@‘localhost’ identified by ‘password’;
需要注意,此处创建的mysql用户的用户名和密码需要和my.cnf中配置的pxc通信用户的信息一致,且该用户只在第一个节点创建即可,其余节点不需要创建。

7,启动其余节点

/usr/local/mysql/bin/mysqld_safe
–defaults-file=/usr/local/mysql/my.cnf --user=mysql

其余节点在启动时,会依据my.cnf中pxc的相关配置,自动将加入到第一个节点启动时创建的集群中,并且会将第一个节点在初始化时,产生的内容自动同步过来,包括在第一个节点上从创建的用户信息,这些操作都依赖于在第一个节点中创建的pxc通信用户,由此可见改用户的配置及其重要。

8,查看集群状态:
登录数据库并执行
show status like ‘wsrep_cluster_%’;

返回结果中,wsrep_cluster_size表示,目前,加入集群中节点的个数。

至此PXC搭建完成,可在数据库中创建表,添加数据,测试查看表,数据等能否自动同步

整理不易,转发请注明出处,文中如有总结不当之处,请多理解