栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Mysql项目2--升级网站运行平台

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mysql项目2--升级网站运行平台

步骤一 清除当前配置 (删除web33主机的tomcat服务的配置)

1)停止网站服务

2)卸载共享存储

 [root@web33 ~]# /usr/local/tomcat/bin/shutdown.sh
 [root@web33 ~]# umount /usr/local/tomcat/webapps/ROOT  //卸载当前挂载
 [root@web33 ~]# vim /etc/fstab   //清除开机挂载
 #192.168.4.30:/sitedir    /usr/local/tomcat/webapps/ROOT  nfs  defaults   0   0 
 :wq

步骤二:部署LNP

1)安装软件

2)挂载共享存储(把NFS30的共享目录/sitedir挂载到nginx的网页目录下)

3)启动服务

要先修改配置文件把访问php页面的请求给本机的9000端口处理 再启动nginx 服务

[root@web33 ~]# yum -y install gcc  zlib-devel  pcre-devel  php   php-devel  php-mysql php-fpm
[root@web33 ~]# tar -xf nginx-1.12.2.tar.gz //解压
[root@web33 ~]# cd nginx-1.12.2  //进源码目录
[root@web33 nginx-1.12.2]# ./configure  //配置
[root@web33 nginx-1.12.2]# make  && make install 
[root@web33 ~]# vim /etc/fstab   //开机挂载
192.168.4.30:/sitedir    /usr/local/nginx/html  nfs  defaults   0   0 
:wq
[root@web33 ~]# mount   -a  //挂载设备
 [root@web33 ~]# vim +65 /usr/local/nginx/conf/nginx.conf  //修改主配置文件
location ~ .php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi.conf;
        }
:wq
[root@web33 ~]# /usr/local/nginx/sbin/nginx //启动服务
[root@web33 ~]# systemctl  start  php-fpm

步骤三:测试配置

1)编写PHP脚本 (在NFS30的共享目录编写连接MySQL服务的php脚本)

[root@NFS30 ~]# vim /sitedir/linkdb2.php					

:wq

2)访问脚本  (在任意1台主机访问web33主机的网站服务 执行linkdb2.php脚本)

[root@NFS30 ~]# curl  http://192.168.4.33/linkdb2.php

   ave data ok

3)查看数据 (在数据库服务器mysql11 和 mysql22 本机查看数据,

     能看到php脚本存储的数据就成功里)

[root@mysql22 ~]# mysql -uroot -p123qqq...A -e 'select  * from gamedb.user';		[root@mysql11~]# mysql -uroot -p123qqq...A -e 'select  * from gamedb.user';

案例2:部署内存存储服务(部署Redis集群 ,使用内存存储网站的数据)

步骤一:部署redis服务器(6台都要配置)

具体操作步骤: 安装redis软件  、 初始化配置 、停止redis服务、启用集群功能、  启动redis 服务

配置Host51主机

[root@redisA ~]# rpm -q gcc  ||  yum -y  install gcc  //安装编译工具
[root@redisA ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redisA ~]# cd redis-4.0.8/   //进源码目录
[root@redisA ~]# make
[root@redisA redis-4.0.8]# make install  //安装软件
[root@redisA redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redisA redis-4.0.8]# /etc/init.d/redis_6379  stop  //停止服务
[root@redisA redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.51
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redisA redis-4.0.8]# /etc/init.d/redis_6379  start  //启动服务
[root@redisA redis-4.0.8]# netstat  -utnlp  | grep  redis-server  //查看端口
tcp        0      0 192.168.4.51:6379       0.0.0.0:*               LISTEN      29720/redis-server   //redis服务端口
tcp        0      0 192.168.4.51:16379      0.0.0.0:*               LISTEN      29720/redis-server  //集群端口

配置Host52主机

[root@redisb ~]# rpm -q gcc  ||  yum -y  install gcc  //安装编译工具
[root@redisb ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redisb ~]# cd redis-4.0.8/   //进源码目录
[root@redisb ~]# make
[root@redisb redis-4.0.8]# make install  //安装软件
[root@redisb redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redisb redis-4.0.8]# /etc/init.d/redis_6379  stop  //停止服务
[root@redisb redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.52
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redisb redis-4.0.8]# /etc/init.d/redis_6379  start  //启动服务
[root@redisb redis-4.0.8]# netstat  -utnlp  | grep  redis-server  //查看端口
tcp        0      0 192.168.4.52:6379       0.0.0.0:*               LISTEN      29720/redis-server   //redis服务端口
tcp        0      0 192.168.4.52:16379      0.0.0.0:*               LISTEN      29720/redis-server  //集群端口

配置Host53主机

[root@redisc ~]# rpm -q gcc  ||  yum -y  install gcc  //安装编译工具
[root@redisc ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redisc ~]# cd redis-4.0.8/   //进源码目录
[root@redisc ~]# make
[root@redisc redis-4.0.8]# make install  //安装软件
[root@redisc redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redisc redis-4.0.8]# /etc/init.d/redis_6379  stop  //停止服务
[root@redisc redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.53
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redisc redis-4.0.8]# /etc/init.d/redis_6379  start  //启动服务
[root@redisc redis-4.0.8]# netstat  -utnlp  | grep  redis-server  //查看端口
tcp        0      0 192.168.4.53:6379       0.0.0.0:*               LISTEN      29720/redis-server   //redis服务端口
tcp        0      0 192.168.4.53:16379      0.0.0.0:*               LISTEN      29720/redis-server  //集群端口

配置Host54主机

[root@redisd ~]# rpm -q gcc  ||  yum -y  install gcc  //安装编译工具
[root@redisd ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redisd ~]# cd redis-4.0.8/   //进源码目录
[root@redisd ~]# make
[root@redisd redis-4.0.8]# make install  //安装软件
[root@redisd redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redisd redis-4.0.8]# /etc/init.d/redis_6379  stop  //停止服务
[root@redisd redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.54
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redisd redis-4.0.8]# /etc/init.d/redis_6379  start  //启动服务
[root@redisd redis-4.0.8]# netstat  -utnlp  | grep  redis-server  //查看端口
tcp        0      0 192.168.4.54:6379       0.0.0.0:*               LISTEN      29720/redis-server   //redis服务端口
tcp        0      0 192.168.4.54:16379      0.0.0.0:*               LISTEN      29720/redis-server  //集群端口	

配置Host55主机

[root@redise ~]# rpm -q gcc  ||  yum -y  install gcc  //安装编译工具
[root@redise ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redise ~]# cd redis-4.0.8/   //进源码目录
[root@redise ~]# make
[root@redise redis-4.0.8]# make install  //安装软件
[root@redise redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redise redis-4.0.8]# /etc/init.d/redis_6379  stop  //停止服务
[root@redise redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.55
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redise redis-4.0.8]# /etc/init.d/redis_6379  start  //启动服务
[root@redise redis-4.0.8]# netstat  -utnlp  | grep  redis-server  //查看端口
tcp        0      0 192.168.4.55:6379       0.0.0.0:*               LISTEN      29720/redis-server   //redis服务端口
tcp        0      0 192.168.4.55:16379      0.0.0.0:*               LISTEN      29720/redis-server  //集群端口

配置Host56主机

[root@redisf ~]# rpm -q gcc  ||  yum -y  install gcc  //安装编译工具
[root@redisf ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redisf ~]# cd redis-4.0.8/   //进源码目录
[root@redisf ~]# make
[root@redisf redis-4.0.8]# make install  //安装软件
[root@redisf redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redisf redis-4.0.8]# /etc/init.d/redis_6379  stop  //停止服务
[root@redisf redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.56
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redisf redis-4.0.8]# /etc/init.d/redis_6379  start  //启动服务
[root@redisf redis-4.0.8]# netstat  -utnlp  | grep  redis-server  //查看端口
tcp        0      0 192.168.4.56:6379       0.0.0.0:*               LISTEN      29720/redis-server   //redis服务端口
tcp        0      0 192.168.4.56:16379      0.0.0.0:*               LISTEN      29720/redis-server  //集群端口							

创建redis集群

配置管理主机:  安装gem软件    创建ruby脚本

[root@mgm ~]# yum -y  install ruby rubygems  //安装依赖
[root@mgm ~]# gem install redis-3.2.1.gem  //安装依赖软件gem程序
[root@mgm ~]# mkdir /root/bin
[root@mgm ~]# tar -xf redis-4.0.8.tar.gz
[root@mgm ~]# cp  redis-4.0.8/src/redis-trib.rb   /root/bin/  //拷贝脚本
[root@mgm ~]# 
[root@mgm ~]# chmod  +x /root/bin/redis-trib.rb  //确保脚本有执行权限

创建集群

mgm~]#redis-trib.rb  create  --replicas  1   
192.168.4.51:6379    192.168.4.52:6379    192.168.4.53:6379    
192.168.4.54:6379   192.168.4.55:6379    192.168.4.56:6379
......
Can I set the above configuration? (type 'yes' to accept): yes  同意
....
....
>>> Check slots coverage...
[OK] All 16384 slots covered.  集群创建成功的提示信息

查看集群信息

[root@mgm ~]# redis-trib.rb info 192.168.4.51:6379
192.168.4.51:6379 (8221af1a...) -> 0 keys | 5461 slots | 1 slaves.
192.168.4.52:6379 (fc08343f...) -> 0 keys | 5462 slots | 1 slaves.
192.168.4.53:6379 (94213188...) -> 0 keys | 5461 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.

配置网站服务器 (web33)

让网站的php脚本可以连接redis 集群中任意服务器查询和存储数据

1) 安装连接redis集群的redis.so模块

2)修改php的配置文件 php.ini 加载模块

3) 查看支持的模块  

[root@web33 ~ ]# yum -y install php-devel  //安装依赖
[root@web33 ~]# tar -xf redis-cluster-4.3.0.tgz  //解压
[root@web33 ~]# cd redis-4.3.0/  //进入源码目录
[root@web33 redis-4.3.0]# phpize  //创建configure命令及配置信息文件/usr/bin/php-config
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
[root@web33 redis-4.3.0]#
[root@web33 redis-4.3.0]# ./configure --with-php-config=/usr/bin/php-config
[root@web33 redis-4.3.0]# make  //编译
[root@web33 redis-4.3.0]# make install  //安装
Installing shared extensions:     /usr/lib64/php/modules/   //提示模块安装目录
[root@web33 redis-4.3.0]# vim /etc/php.ini
728 extension_dir = "/usr/lib64/php/modules/"   //模块目录
730 extension = "redis.so"   //模块名
:wq
[root@web33 redis-4.3.0]# systemctl  restart php-fpm  //重启php-fpm服务
[root@web33 redis-4.3.0]# php -m | grep redis
redis
[root@web33 redis-4.3.0]#

测试配置

在存储服务器共享目录下,创建连接集群PHP脚本

#存储数据的PHP脚本
[root@NFS30 ~]# vim    /sitedir/set_data.php   
set("i","tarenaA "); //存储数据 变量名 i
$client->set("j","tarenaB ");  //存储数据 变量名 j
$client->set("k","tarenaC ");  //存储数据 变量名 k 
echo "save ok";
?>
:wq

#查看数据的PHP脚本
[root@NFS30 ~]# vim   /sitedir/get_data.php 
get("i");  //获取变量i 的数据
echo $client->get("j");  //获取变量j 的数据
echo $client->get("k");  //获取变量k 的数据
echo "get ok";
?>
:wq

#存储+查询的PHP脚本
[root@NFS30 ~]# vim   /sitedir/test3.php  
set("name","panglijing");  //存数据
echo $client->get("name");  //取数据
?>
:wq
[root@NFS30 ~]#

访问网站执行脚本(在任意主机访问网站服务器都可以)

[root@NFS30 ~]# curl http://192.168.4.33/set_data.php
save ok[root@NFS30 ~]# 
[root@NFS30 ~]# 
[root@NFS30 ~]# 
[root@NFS30 ~]# curl http://192.168.4.33/get_data.php
tarenaA tarenaB tarenaC get ok
[root@NFS30 ~]# 
[root@NFS30 ~]# curl http://192.168.4.33/test3.php
panglijing[root@NFS30 ~]#

命令行连接任意一台redis服务器查看数据(在任意主机连接redis服务器都可以)

[root@host52 ~]# redis-cli -c -h 192.168.4.51 -p 6379
192.168.4.51:6379> keys *
1) "j"
192.168.4.51:6379> exit

[root@host52 ~]# redis-cli -c -h 192.168.4.52 -p 6379
192.168.4.52:6379> keys *
1) "k"
2) "name"
192.168.4.52:6379> exit
[root@host52 ~]# redis-cli -c -h 192.168.4.53 -p 6379
192.168.4.53:6379> keys *
1) "i"
192.168.4.53:6379>

数据迁移 (把存储在读写分离结构里的数据 复制到  PXC集群结构里)

在线迁移数据(在网站业务不停止的情况下复制数据到新的存储结构pxc集群里)

配置从服务器(把主机192.168.4.66 配置为192.168.4.11的从服务器)

[root@pxcnode66 ~]# tar -xf mysql-5.7.17.tar  //解包
[root@pxcnode66 ~]# yum -y  install mysql-community-*.rpm  //安装软件
[root@pxcnode66 ~]# systemctl start  mysqld  //启动服务
[root@pxcnode66 ~]# grep password  /var/log/mysqld.log //查看初始密码
2019-07-05T01:56:51.895852Z 1 [Note] A temporary password is generated for root@localhost: bB0*uCmu:.Kj
[root@pxcnode66 ~]# mysql -uroot -p'bB0*uCmu:.Kj'  //初始密码登录
mysql> 
mysql> alter user root@"localhost" identified by "123qqq...A";//修改登录密码
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> exit //断开连接
Bye
[root@pxcnode66 ~]# mysql -uroot -p123qqq…A  //新密码登录

2)修改服务主配置文件

[root@pxcnode66 ~]# vim /etc/my.cnf
[mysqld]
server_id=66  //指定server_id
:wq
[root@pxcnode66 ~]# systemctl  restart mysqld  //重启服务

确保数据一致 (pxcnode66主机 使用mysql11主机的完全备份恢复数据确保数据一致 )

先在 mysql11主机安装在线热备工具innobackupex 命令

把备份文件拷贝给 从服务pxc66主机

[root@mysql11 ~]# yum -y install  libev-4.15-1.el6.rf.x86_64.rpm //安装依赖软件
[root@mysql11 ~]# yum -y  install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm //安装在线热备软件
[root@mysql11 ~]# innobackupex  -uroot -p123qqq…A  /allbak --no-timestamp //备份所有数据,并记录备份数据对应的binlog日志名
[root@mysql11 ~]# scp -r /allbak  root@192.168.4.66:/root/   //把备份文件发送给pxcnode66主机

从服务pxc66主机 是完全备份文件恢复数据,(也要安装热备工具innobackupex 命令)

[root@pxcnode66 ~]# yum -y install  libev-4.15-1.el6.rf.x86_64.rpm  //安装依赖软件
[root@pxcnode66 ~]# yum -y install  percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm //安装在线热备软件
[root@pxcnode66 ~]# systemctl  stop  mysqld //停止服务
[root@pxcnode66 ~]# rm  -rf  /var/lib/mysql/*  //清空数据库目录
[root@pxcnode66 ~]# innobackupex --apply-log /root/allbak/  //准备恢复数据
[root@pxcnode66 ~]# innobackupex --copy-back /root/allbak/  //恢复数据
[root@pxcnode66 ~]# chown -R mysql:mysql /var/lib/mysql //修改所有者
[root@pxcnode66 ~]# systemctl start  mysqld  //启动服务

指定主服务器 (把pxc66 配置为 mysql11 的从服务器)

#在备份文件里查看 完全备份后 对应的日志名和偏移量
[root@pxc66 ~]# grep master11 /root/allbak/xtrabackup_info 
binlog_pos = filename 'master11.000001', position '5543'
[root@pxc66 ~]#
#管理员登录指定主服务器信息
[root@pxcnode66 ~]# mysql -uroot -p123qqq...A    
mysql> change master to  
master_host="192.168.4.11", //主服务器ip地址
master_user="repluser", //主服务器授权用户
master_password="123qqq...A", //授权密码
master_log_file="master11.000001",    //binlog日志名
master_log_pos=5543; //日志偏移量
Query OK, 0 rows affected, 2 warnings (0.31 sec)
mysql> start slave ; 
				
mysql> exit  //断开连接
Bye

#查看主服务器地址
[root@pxcnode66 ~]# mysql -uroot -p123qqq...A -e "show slave statusG" | grep -i 192.168.4.11 
mysql: [Warning] Using a password on the command line interface can be insecure.
                  Master_Host: 192.168.4.11 //主服务器ip地址
#查看状态信息
[root@pxcnode66 ~]# mysql -uroot -p123qqq...A -e "show slave statusG" | grep -i "yes" 
mysql: [Warning] Using a password on the command line interface can be insecure.
             Slave_IO_Running: Yes  //IO线程正常
            Slave_SQL_Running: Yes  //SQL线程正常
[root@pxcnode66 ~]#	

配置第1台PXC服务器(192.168.4.66)

停止mysqld服务、卸载mysqld服务软件

[root@pxc66 ~]# systemctl  stop  mysqld				
[root@pxc66 ~]# rpm -e --nodeps mysql-community-common mysql-community-devel   
mysql-community-test mysql-community-minimal-debuginfo  
mysql-community-libs mysql-community-server mysql-community-embedded 
 mysql-community-embedded-devel mysql-community-embedded-compat  
 mysql-community-client mysql-community-libs-compat

安装PXC软件、修改配置文件、启动mysql服务

[root@pxcnode66 ~]# cd PXC  //进软件目录

#安装依赖
[root@pxcnode66 PXC]# yum -y install libev-4.15-1.el6.rf.x86_64.rpm
[root@pxcnode66 PXC]# yum -y install percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm qpress-1.1-14.11.x86_64.rpm

[root@pxcnode66 PXC]# yum -y install qpress-1.1-14.11.x86_64.rpm  

//解压PXC软件包
tar -xf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar

//安装软件  
[root@pxcnode66 PXC]# yum -y  install Percona-XtraDB-Cluster-*.rpm 

#修改数据库服务配置文件
[root@pxcnode66 PXC]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf 
[mysqld]
server-id=66 //指定server_id
:wq

#修改集群服务配置文件
[root@pxcnode66 PXC]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf 
8: wsrep_cluster_address=gcomm://	   不需要写ip地址
25: wsrep_node_address=192.168.4.66   //指定本机Ip地址
27: wsrep_cluster_name=pxc-cluster  //指定集群名称(另外2台的集群名称要于此相同)
30: wsrep_node_name=pxcnode66  //指定本机主机名
39: wsrep_sst_auth="sstuser:123qqq…A" //数据全量同步授权用户及密码
:wq

//启动服务
[root@pxcnode66 PXC]# systemctl  start mysql  

//管理员登录
[root@pxcnode66 PXC]# mysql -uroot -p123qqq…A 

//用户授权
mysql> grant all on *.* to sstuser@"localhost" identified by "123qqq...A"; 
mysql> exit;

配置第2台PXC服务器(192.168.4.10)

1)安装PXC软件

2)  修改配置文件

3)  启动mysql服务

[root@pxcnode10 ~]# cd PXC  //进软件目录

//安装依赖
[root@pxcnode10 PXC]# yum -y install libev-4.15-1.el6.rf.x86_64.rpm
[root@pxcnode10PXC]# 
yum -y install percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm qpress-1.1-14.11.x86_64.rpm
[root@pxcnode10 PXC]# yum -y install qpress-1.1-14.11.x86_64.rpm 

 //解压PXC软件包
[root@pxcnode10 PXC]# 
tar -xf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar

//安装软件
[root@pxcnode10 PXC]# yum -y  install Percona-XtraDB-Cluster-*.rpm 

//修改数据库服务配置文件
[root@pxcnode10 PXC]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf 
[mysqld]
server-id=10 //指定server_id
:wq

//修改集群服务配置文件
[root@pxcnode10 PXC]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf 
8: wsrep_cluster_address=gcomm://192.168.4.66	   
25: wsrep_node_address=192.168.4.10   //指定本机Ip地址
27: wsrep_cluster_name=pxc-cluster  //指定集群名称(另外2台的集群名称要于此相同)
30: wsrep_node_name=pxcnode10  //指定本机主机名
39: wsrep_sst_auth="sstuser:123qqq…A" //数据全量同步授权用户及密码
:wq
[root@pxcnode10 PXC]# systemctl  start mysql  //启动服务
[root@pxcnode10 PXC]# mysql -uroot -p123qqq…A //管理员登录

配置第3台PXC服务器(192.168.4.88)

1)安装PXC软件

2)  修改配置文件

3)  启动mysql服务

[root@pxcnode88 ~]# cd PXC  //进软件目录
[root@pxcnode88 PXC]# yum -y install libev-4.15-1.el6.rf.x86_64.rpm
[root@pxcnode88 PXC]# yum -y install percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm qpress-1.1-14.11.x86_64.rpm
[root@pxcnode88 PXC]# yum -y install qpress-1.1-14.11.x86_64.rpm  //安装依赖
[root@pxcnode88 PXC]# tar -xf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar  //解压PXC软件包
[root@pxcnode88 PXC]# yum -y  install Percona-XtraDB-Cluster-*.rpm //安装软件
[root@pxcnode88 PXC]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf //修改数据库服务配置文件
[mysqld]
server-id=88 //指定server_id
:wq

[root@pxcnode88 PXC]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf //修改集群服务配置文件
8: wsrep_cluster_address=gcomm://192.168.4.66	   
25: wsrep_node_address=192.168.4.88   //指定本机Ip地址
27: wsrep_cluster_name=pxc-cluster  //指定集群名称(另外2台的集群名称要于此相同)
30: wsrep_node_name=pxcnode88  //指定本机主机名
39: wsrep_sst_auth="sstuser:123qqq…A" //数据全量同步授权用户及密码
:wq
[root@pxcnode88 PXC]# systemctl  start mysql  //启动服务
[root@pxcnode88 PXC]# mysql -uroot -p123qqq…A //管理员登录

公共配置(192.168.4.88、192.168.4.10、192.168.4.66)

pxcnode66~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf  
wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.10,192.168.4.88 //指定集群成员列表
:wq

pxcnode10~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf  
wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.10,192.168.4.88 //指定集群成员列表
:wq

pxcnode88~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf  
wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.10,192.168.4.88 //指定集群成员列表
:wq

测试配置

[root@mysql11 ~]# mysql -uroot -p123qqq...A

#访问pxc集群存储数据需要表中有主键字段
mysql> alter table gamedb.user add  id int primary key auto_increment first; 
mysql> exit;

[root@web33 ~]# mysql  -h192.168.4.66  -uyaya  -p123qqq…A  gamedb
Mysql> insert  into  gamedb.user(name) values ("pljA");
Mysql> exit ;
[root@web33 ~]# mysql  -h192.168.4.10  -uyaya  -p123qqq…A  gamedb
Mysql> insert  into  gamedb.user(name) values ("pljB");
Mysql> exit ;
[root@web33 ~]# mysql  -h192.168.4.88  -uyaya  -p123qqq…A  gamedb
Mysql> insert  into  gamedb.user(name) values ("pljC");
Mysql> exit ;

网站服务33 连接集群中的任意一台服务器都可以查看到 插入的 所有数据

[root@web33 ~]# mysql -h192.168.4.66 -uyaya -p123qqq...A  -e 'select  * from gamedb.user'
[root@web33 ~]# mysql -h192.168.4.10 -uyaya -p123qqq...A  -e 'select  * from gamedb.user'
[root@web33 ~]# mysql -h192.168.4.88 -uyaya -p123qqq...A  -e 'select  * from gamedb.user'

部署LB集群

步骤一:安装软件: 在haproxy99主机上安装haproxy软件

步骤二:修改配置文件

步骤三:启动服务

 步骤四:测试配置:在网站服务器连接haproxy99主机访问数据

[root@haproxy99 ~]# yum -y install haproxy
[root@haproxy99 ~]# vim  /etc/haproxy/haproxy.cfg
#文件末尾添加如下行
listen mysql_3306 *:3306 //定义haproxy服务名称与端口号
    mode    tcp        //mysql服务 得使用 tcp 协议
    option  tcpka      //使用长连接
    balance roundrobin //调度算法
    server  mysql_01 192.168.4.66:3306 check  //第1台数据库服务器
    server  mysql_02 192.168.4.10:3306 check  //第2台数据库服务器
    server  mysql_03 192.168.4.88:3306 check  //第3台数据库服务器
:wq
[root@haproxy99 haproxy]#
[root@haproxy99 ~]# systemctl  start haproxy //启动服务
[root@haproxy99 ~]# netstat -utnlp  | grep  :3306  //查看端口
tcp6       0      0 :::3306                 :::*                    LISTEN      29768/haproxy

测试配置

//第1次连接
[root@web33 ~]# mysql -h192.168.4.99 -uyaya -p123qqq…A -e  ‘select @@hostname’
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxcnode66  |  
+------------+
[root@web33 ~]#

//第2次连接
[root@web33 ~]# mysql -h192.168.4.99 -uyaya -p123qqq…A -e  ‘select @@hostname’
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxcnode10  |   
+------------+
[root@web33 ~]#

//第3次连接
[root@web33 ~]# mysql -h192.168.4.99 -uyaya -p123qqq…A -e  ‘select @@hostname’
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxcnode88  |  
+------------+
[root@web33 ~]#

部署HA集群

步骤一:准备备用调度器主机192.168.4.98
    环境准备: 创建新的虚拟机 并配置ip地址 192.168.4.98
    1) 安装haproxy 软件 
[root@haproxy98 ~]#yum -y install haproxy
    2)修改haproxy98主机haproxy.conf文件
    说明要和99主机的配置一样,所以直接拷贝haproxy99主机的配置文件也可以
[root@haproxy98 ~]# scp root@192.168.4.99:/etc/keepalived/keepalived.conf /etc/keepalived/
    3)启动haproxy服务
[root@haproxy98 ~]# systemctl  start keepalived
[root@haproxy98 ~]# netstat  -utnalp  | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      918/haproxy         
[root@haproxy98 ~]# 

  步骤二:安装软件keepalived软件
	1)在haproxy99主机安装keepalived软件
[root@haproxy99 ~]# yum -y install keepalived.x86_64

    2)在haproxy98主机安装keepalived软件
[root@haproxy98 ~]# yum -y install keepalived.x86_64    

步骤三:修改配置文件

     1)修改haproxy99主机的配置文件,说明99主机做主调度器 优先级要比98高
     #删除文件中不相关的配置
[root@haproxy99 ~]# sed -i  '36,$d' /etc/keepalived/keepalived.conf
[root@haproxy99 ~]# vim /etc/keepalived/keepalived.conf
.....
......
vrrp_iptables
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.4.100
    }
}
:wq

	 2)修改haproxy98主机的配置文件,说明98主机做备用调度器 优先级要比99低	
[root@haproxy98 ~]# scp root@192.168.4.99:/etc/keepalived/keepalived.conf /etc/keepalived/
[root@haproxy98 ~]# vim /etc/keepalived/keepalived.conf	
....
state BACKUP
....
priority 100
:wq

步骤四:启动服务

     1)在haproxy99主机启动keepalived服务	
[root@haproxy99 ~]# systemctl  start keepalived     

     2)在haproxy98主机启动keepalived服务
[root@haproxy98 ~]# systemctl  start keepalived

步骤五:测试配置

    1)客户端连接vip地址,访问数据库服务
[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc10      |
+------------+



[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc88      |
+------------+


[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
Pxc66

	2)测试高可用	
        #把99主机的keepalived 服务停止模拟 服务宕机里 
[root@haproxy99 ~]# systemctl  stop  keepalived   

        #在98 主机可以查看到vip地址  192.168.4.100
[root@haproxy98 ~]# ip addr show | grep  192
    inet 192.168.4.98/24 brd 192.168.4.255 scope global noprefixroute eth0
    inet 192.168.4.100/32 scope global eth0
[root@haproxy98 ~]# 

       #客户端一直连接vip地址访问数据库服务
[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc66      |
+------------+
[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc10      |
+------------+
[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
| pxc10      |
+------------+

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/865943.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号