PXC(Percona XtraDB Cluster)安装以及问题解决方法

PXC安装

 

1、PXC安装环境:

集群名称: pxc-sky

node1 : 192.168.246.18

node2 : 192.168.246.19

node3 : 192.168.246.20

 

2、关闭防火墙和selinux

#chkconfig iptables off  

#vi /etc/selinux/config

 SELINUX=disabled

 

#reboot

 

3、创建mysql用户和组

3个节点都要做

[root@localhost ~]# groupadd mysql

[root@localhost ~]# useradd –g mysql –s/sbin/nologin mysql

 

4、主要软件的安装

3个节点都要做

软件的存放位置在/opt/mysql/下

首先先配置好yum源

 

4.1    Percona-XtraDB-Cluster-5.6.26-rel74.0-25.12.1.Linux.x86_64.tar.gz

使用tar -zxvf Percona-XtraDB-Cluster-5.6.26-rel74.0-25.12.1.Linux.x86_64.tar.gz解压

然后软连接到/usr/local/mysql上

cd /usr/local/

ln -s /opt/mysql/Percona-XtraDB-Cluster-5.6.26-rel74.0-25.12.1.Linux.x86_64 mysql

授予mysql用户组的权限

chown –R mysql:mysql mysql

chown –R mysql:mysql mysql/

 

 

4.2 percona-xtrabackup-2.3.2-1.el6.x86_64.rpm

libev-4.15-1.el6.rf.x86_64.rpm

 

先安装依赖包libev-4.15-1.el6.rf.x86_64.rpm

rpm –ivh libev-4.15-1.el6.rf.x86_64.rpm

然后使用yum –y install percona-xtrabackup-2.3.2-1.el6.x86_64.rpm安装

 

4.3 socat-1.7.2.3-1.el6.src.rpm

cd /opt/mysql

rpm –ivh socat-1.7.2.3-1.el6.src.rpm

生成/root/rpmbuild/SOURCES/socat-1.7.2.3.tar.gz

cd /root/rpmbuild/SOURCES/

tar -zxvf socat-1.7.2.3.tar.gz

cd /root/rpmbuild/SOURCES/socat-1.7.2.3

./configure  

#####如果出现下面错误,那么安装gcc的依赖包


使用yum –y install gcc

然后在执行

./configure

make

make install

 

cd /usr/bin

ln -s /usr/local/bin/socat socat

 

5、配置mysql参数文件

3个节点都要做

存放在/etc/my.cnf

 

#my.cnf

[client]

port            = 3306

socket          = /tmp/mysql3306.sock

 

[mysql]

prompt="\\u@\\h:\\p  [\\d]>

#pager="less -i -n -S"

#tee=/home/mysql/query.log

no-auto-rehash

 

[mysqld]

#misc

user = mysql

basedir = /usr/local/mysql

datadir = /data/mysql/mysql3306/data

port = 3306

socket = /tmp/mysql3306.sock

event_scheduler = 0

 

tmpdir=/data/mysql/mysql3306/tmp

#timeout

interactive_timeout = 300

wait_timeout = 300

 

#character set

character-set-server = utf8

 

open_files_limit = 65535

max_connections = 100

max_connect_errors = 100000

#

explicit_defaults_for_timestamp

#logs

log-output=file

slow_query_log = 1

slow_query_log_file = slow.log

log-error = error.log

log_warnings = 2

pid-file = mysql.pid

long_query_time = 1

#log-slow-admin-statements = 1

#log-queries-not-using-indexes = 1

log-slow-slave-statements = 1

 

#binlog

binlog_format = row

server-id = 193306     ###ip最后一位+端口号

log-bin =/data/mysql/mysql3306/logs/mysql-bin

binlog_cache_size = 1M

max_binlog_size = 200M

max_binlog_cache_size = 2G

sync_binlog = 0

expire_logs_days = 10

 

#relay log

skip_slave_start = 1

max_relay_log_size = 500M

relay_log_purge = 1

relay_log_recovery = 1

log_slave_updates

#slave-skip-errors=1032,1053,1062

 

#buffers & cache

table_open_cache = 2048

table_definition_cache = 2048

table_open_cache = 2048

max_heap_table_size = 96M

sort_buffer_size = 2M

join_buffer_size = 2M

thread_cache_size = 256

query_cache_size = 0

query_cache_type = 0

query_cache_limit = 256K

query_cache_min_res_unit = 512

thread_stack = 192K

tmp_table_size = 96M

key_buffer_size = 8M

read_buffer_size = 2M

read_rnd_buffer_size = 16M

bulk_insert_buffer_size = 32M

 

#myisam

myisam_sort_buffer_size = 128M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

 

#innodb

innodb_buffer_pool_size = 100M

innodb_buffer_pool_instances = 1

innodb_data_file_path =ibdata1:100M:autoextend

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 64M

innodb_log_file_size = 256M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_file_per_table = 1

innodb_rollback_on_timeout

innodb_status_file = 1

innodb_io_capacity = 2000

transaction_isolation = READ-COMMITTED

innodb_flush_method = O_DIRECT

 

#pxc

default_storage_engine=Innodb

innodb_locks_unsafe_for_binlog=1

innodb_autoinc_lock_mode=2

 

wsrep_cluster_name=pxc_sky 

wsrep_cluster_address=gcomm://192.168.246.20,192.168.246.19,192.168.246.18    ##3个节点的ip

wsrep_node_address=192.168.246.19     ###本机的ip

wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so

 

# wsrep_sst_method=rsync        ##sst的模式

wsrep_sst_method=xtrabackup-v2      ##sst的模式

wsrep_sst_auth=sst:sky        ##sst的用户名和密码

 

6、初始化mysql

3个节点都要做

建立mysql的存放目录

mkdir –p/data/mysql/mysql3306/{data,tmp,logs}

chown –R mysql:mysql /data

 

cd /usr/local/mysql

 

在进行安装初始化的时候报错,提示找不到libss.so.6这个包,然后我locate了一下,发现系统内部是有这个包的,只是版本不同,然后我将libssl.so.10的这个包软连接为libssl.so.6

 [root@node7 /]# locate libssl
/usr/lib64/.libssl.so.1.0.1e.hmac
/usr/lib64/.libssl.so.10.hmac
/usr/lib64/libssl.so.1.0.1e
/usr/lib64/libssl.so.10
/usr/lib64/libssl3.so
[root@node7 /]# ln -s /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.6


然后继续安装初始化时,又提示找不到libcrypto.so.6这个包,然后继续用locate方式查找一下本地系统有没有这个版本的包

可以发现系统内部也是有这个包的,继续用相同的方法,软连接一下

然后继续初始化

出现两个OK,那么我的初始化已经成功了

 

7、PXC的启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

 

然后就是启动第一个节点,第一个节点在启动的时候要使用bootstrap-pxc的方式启动

也可以使用/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf--wsrep_new_cluster &

进行第一个节点的启动

其余的节点直接使用 /etc/init.d/mysql start启动

 

然后就是连接到mysql,发现还是找不到包的问题,用locate  + 软连接的方式解决

在继续连接mysql,就成功了

连接到mysql进行安全初始化

delete from mysql.user where user!=’root’or host!=’localhost’;

truncate table mysql.db;

drop database test;

flush privileges;

用户授权

grant all privileges on *.* to sky@'%' identified by 'sky';

grant replication slave on *.*  to sst@'localhost' identified by 'repl';

 

8、PXC的关闭

/etc/init.d/mysql stop 关闭

Ps:最后一个停止的节点,需要第一个启动,启动方式为bootstrap-pxc启动

 

9、遇到的错误及解决方法

9.1

第二个节点启动报错

解决方法:

这是机器异常停了,lock文件没删除就样,重启机器后就可以正常启动了

如果重新启动后还是出现这个错误,那么更新下percona-xtrabackup版本,更新到最新版本

 

9.2

PXC启动成功,可以连接数据库,在做任何操作是报下面这个错,而且关闭PXC关闭不掉

解决方法:

这是PXC在启动的时候,--wsrep_start_position=00000000-0000-0000-0000-000000000000:-1 这个同步出现错误,重新启动机器后,启动PXC即可

 

9.3

解决方法:

这是在PXC的配置文件中wsrep_sst_method=xtrabackup-v2 中没有写v2造成的

 

9.4

解决方法:

这是在PXC的配置文件中的

wsrep_cluster_address=gcomm://192.168.246.18,192.168.246.19,192.168.246.20

这个参数没写将PXC所有节点的IP写入造成的,将PXC所有节点的IP添加上去就可以了

 

 

 

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值