概述
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添加上去就可以了
最后
以上就是危机石头为你收集整理的PXC(Percona XtraDB Cluster)安装以及问题解决方法的全部内容,希望文章能够帮你解决PXC(Percona XtraDB Cluster)安装以及问题解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复