##pxc5.7离线安装
pxc5.7yum安装已经在之前的博客里面写过了,接下来介绍通过无外网环境,只能使用内网yum,但是yum中缺少pxc5.7的情况下,需要自己下载安装包来进行安装pxc5.7.
—— 5.7yum安装文档
###服务器准备
| 服务器 |
| - |
| .168.124.16 |
| .168.124.17 |
[x] 主机名修改
12345两台机器默认都是localhsot,分别修改两台主机名。名字自定义不要重复命令格式 :sudo hostnamectl set-hostname <newhostname>16 执行 sudo hostnamectl set-hostname pxc_mysql_1617 执行 sudo hostnamectl set-hostname pxc_mysql_17·检查方式 hostname 或者 reboot 重启查看[x] 开启防火墙
123456systemctl start firewalldfirewall-cmd --add-port=3306/tcp --permanentfirewall-cmd --add-port=4567/tcp --permanentfirewall-cmd --add-port=4568/tcp --permanentfirewall-cmd --add-port=4444/tcp --permanentfirewall-cmd --reload[x] 添加host 两台都要
12345vim /etc/hosts**.172.19.16 pxc_mysql_16**.172.19.17 pxc_mysql_17#私有源地址**.117.120.246 linux.siyou.**.**[x] 配置内网yum
123vim /etc/hosts**.172.19.16 pxc_mysql_16**.172.19.17 pxc_mysql_17[x] 更改私有源地址 可选
1参考地址:https://gitlab.com/XDOSC/WIFI/wikis/mirror-help/centos- [x] 安装依赖
123yum 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- [x] 文件准备
123文件1:libev-4.15-1.el6.rf.x86_64.rpm文件2:percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm文件3:Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101.tar.gz- [x] 文件安装
1234567891011121314151617放到/opt/mysql 目录rpm -ivh libev-4.15-1.el6.rf.x86_64.rpmrpm -ivh percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpmmv Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101.tar.gz usr/localcd /usr/local/tar zxvf Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101.tar.gzln -s Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101 pxc_mysql创建用户,新建文件夹请授权【2个节点都要操作】 :[root@localhost ~]# userdel mysql[root@localhost ~]# groupadd mysql[root@localhost ~]# useradd -g mysql mysql[root@localhost ~]# passwd mysql##密码记住之后切换用户的时候需要用到[root@localhost ~]# mkdir -p /usr/local/pxc_mysql/{data,logs,tmp}[root@localhost ~]# mkdir -p /usr/local/pxc_mysql/logs/binlog[root@localhost ~]# chown -R mysql:mysql /usr/local/pxc_mysql/[root@localhost ~]# chmod -R +x /usr/local/pxc_mysql/[x] 配置服务器之间ssh登录无密码验证
123456789101112131415ssh-keygen实现两台主机之间相互免密钥登录,保证两台机之间能ping通1)在所有的主机上执行:# ssh-keygen -t rsa2)将所有机子上公钥(id_rsa.pub)导到一个主机的/root/.ssh/authorized_keys文件中,然后将authorized_keys分别拷贝到所有主机上,以17 服务器命令为例子,16服务器上只要改用17的ip就可以了。cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keysssh 10.172.19.16 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keysscp /root/.ssh/authorized_keys 10.172.19.16:/root/.ssh/authorized_keysscp /root/.ssh/authorized_keys 10.172.19.16:/root/.ssh/authorized_keys两台服务器都要以16 服务器命令为例子,17服务器上只要改用16的ip就可以了。cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keysssh 10.172.19.17 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keysscp /root/.ssh/authorized_keys 10.172.19.17:/root/.ssh/authorized_keysscp /root/.ssh/authorized_keys 10.172.19.17:/root/.ssh/authorized_keys在16上测试:ssh 10.172.19.17- [x] 重启服务器
1reboot- [x] 配置my.cnf
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879两台服务都要执行引链ln -s /usr/local/pxc_mysql/bin/mysql /usr/binln -s /usr/local/Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101/data/mysql.sock /tmp/mysql.sock3、切换mysql用户创建my.cnf ,两台都需要此操作修改点看注释su mysql输入密码为之前创建的时候设置的cd /usr/local/pxc_mysql/vi my.cnf# Template my.cnf for PXC# Edit to your requirements.[client]socket=/usr/local/pxc_mysql/data[mysqld]#需要修改点节点一般设置为服务的ip最后两三位,两台不一致server-id=17port = 3306 #默认basedir=/usr/local/pxc_mysqldatadir=/usr/local/pxc_mysql/datasocket=/usr/local/pxc_mysql/data/mysql.socklog-error=/usr/local/pxc_mysql/data/mysqld.logpid-file=/usr/local/pxc_mysql/data/mysqld.pidlog-bin=/usr/local/pxc_mysql/logsslow_query_log_file = /usr/local/pxc_mysql/data/slow.loglog_slave_updatesexpire_logs_days=7binlog_format=ROWinnodb_buffer_pool_size = 1524Mlower_case_table_names=1#pxcwsrep_provider=/usr/local/pxc_mysql/lib/libgalera_smm.sowsrep_cluster_name=pxc-nie#集群名字:两台服务器一样即可#集群之间的IP,建议将本机ip放在最后。wsrep_cluster_address=gcomm://10.172.19.16,10.172.19.17wsrep_node_name=pxc_mysql_17 #本主机名开始修改的 两台不一样wsrep_node_address=10.172.19.17 #本机IP两台不一样wsrep_sst_method=xtrabackup-v2 #参数可百度。最优参数这个wsrep_sst_auth=pxc:echo@2018 #数据同步用户pxc_strict_mode=PERMISSIVE#参数可百度binlog_format=ROWdefault_storage_engine=InnoDBinnodb_buffer_pool_size = 60Gsql_mode=STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER#ROW_FORMAT = DYNAMICbinlog_format = rowmax_binlog_size = 512Mexpire-logs-days = 7slave-net-timeout=30skip-external-lockingskip_name_resolve = 1default-storage-engine = InnoDBwait_timeout=3600interactive_timeout=3600connect_timeout = 20########per_thread_buffers#####################max_connections=3000max_user_connections=3000max_connect_errors=3000#max_allowed_packet = 64Mtable_open_cache = 6144table_definition_cache = 4096#################InnoDB###########################innodb_buffer_pool_instances = 8innodb_flush_method = O_DIRECTinnodb_io_capacity = 300innodb_max_dirty_pages_pct = 80innodb_log_file_size = 1024Minnodb_log_buffer_size = 512Minnodb_log_files_in_group = 3innodb_flush_log_at_trx_commit = 1performance_schema=ONtransaction_isolation = READ-COMMITTED#innodb_file_format = Barracudainnodb_file_per_table = 1innodb_strict_mode=offmax_allowed_packet = 1G- [x]初始化每个节点的mysql
/usr/local/pxc_mysql/bin/mysqld --defaults-file=/usr/local/pxc_mysql/my.cnf --datadir=/usr/local/pxc_mysql/data --basedir=/usr/local/pxc_mysql --initialize[x]启动第一个节点
以root启动 su root [root@node1 pxc_mysql]# /usr/local/pxc_mysql/bin/mysqld_safe --defaults-file=/usr/local/pxc_mysql/my.cnf --wsrep-new-cluster --user=mysql & 查询密码的命令 grep "temporary password" /usr/local/pxc_mysql/data/mysqld.log 然后进入MySQL,执行如下操作(如果进不去,报错密码过期,那么在my.cnf文件加入:skip-grant-tables,然后无密码进入数据库: update mysql.user set password_expired="N" where user="root"; 最后把参数从配置文件去掉,重启数据库,用刚才的root密码进入即可。) Mysql 命令: alter user 'root'@'localhost' identified by 'xd_hs_db@2018'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xd_hs_db@2018' WITH GRANT OPTION; #注意 创建的pxc 用户不是凭空创建的是之前配置集群设置的 mysql> create user 'pxc'@'localhost' identified by 'echo@2018'; mysql> grant reload, lock tables, replication client, process on *.* to 'pxc'@'localhost';- [x]初始化每个节点的mysql
/usr/local/pxc_mysql/bin/mysqld --defaults-file=/usr/local/pxc_mysql/my.cnf --datadir=/usr/local/pxc_mysql/data --basedir=/usr/local/pxc_mysql --initialize- [x]依次启动第二个节点
[root@node2 pxc_mysql]# /usr/local/pxc_mysql/bin/mysqld_safe --defaults-file=/usr/local/pxc_mysql/my.cnf --user=mysql &- [x]依次启动第二个节点
集群测试:在16上执行 mysql -uroot -pxd_hs_db@2018 mysql> show variables like 'version'; +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | version | 5.7.23-23-31.31-log | +---------------+--------------+ 1 row in set (0.00 sec) mysql> create database pxcdb; mysql> use pxcdb; mysql> create table t1(id tinyint,ename varchar(20)); mysql> insert into t1 values(1,'SongxiaoLang'); 登录17检查 select * from pxcdb.t1; --查看集群状态 mysql> show status like '%wsrep_clust%'; +--------------------------+--------------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------------+ | wsrep_cluster_weight | 2 | | wsrep_cluster_conf_id | 8 | | wsrep_cluster_size | 2 | | wsrep_cluster_state_uuid | 77cb307c-f93e-11e8-9433-260dd7fec691 | | wsrep_cluster_status | Primary | +--------------------------+--------------------------------------+ 5 rows in set (0.00 sec)- [x]集群突发事件重启
#查看mysql还有哪个活着可以通过连接数据查看。 如果都挂了。 find / -name grastate.dat 查看dat文件在哪,然后查看哪个是1 如果都是0.那么将一台safe_to_bootstrap:的值修改为1; 然后按照,启动第一个节点的命令去启动。第二个节点则以启动第二个节点的命令去启动。 停止pxc集群目前此版本还没有找到好的命令只能通过 //查看mysql的进程ps -aux|grep mysql 必要时删除进程 kill -9 pid(mysql) [root@pxc_mysql_17 ~]# find / -name grastate.dat /usr/local/Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101/data/grastate.dat [root@pxc_mysql_17 ~]# find /usr/local/Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101/data/grastate.dat^C [root@pxc_mysql_17 ~]# more /usr/local/Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101/data/grastate.dat # GALERA saved state version: 2.1 uuid: 77cb307c-f93e-11e8-9433-260dd7fec691 seqno: -1 safe_to_bootstrap: 0

