架构图:
- 准备六台服务器,配置好基础环境,在/etc/hosts文件下写机器信息
- 搭建主从
[root@Server backup]# cat xtrabackup_binlog_pos_innodb
mysqlbinlog.000003 147451071
- mycat的安装及配置读写分离
- 安装 JDK
rpm -ivh jdk-8u111-linux-x64.rpm
- 解压安装 mycat
tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
- 创建 mycat 用户并配置密码
useradd mycat
- 为 mycat 目录授予 mycat 用户的权限
chown -R mycat:mycat /usr/local/mycat/
- 修改主机名配置文件
在 127 最后行末空格加上 mycat 机器的主机名
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 mycat
- 安装 mysql 客户端,用来连接后端数据库
- 在主库上为mycat机器建立连接的用户:
mysql> grant all on *.* to 'mycat'@'172.16%' identified by 'mycat';
Mycat 采用这个用户去连接后端的数据库架构
- 修改/usr/local/mycat/conf/schema.xml
mv schema.xml schema.xml.bak
将软件包中的schema.xml放在/usr/local/mycat/conf中
chown -R mycat:mycat schema.xml
chmod 777 schema.xml
- 修改 /usr/local/mycat/conf/server.xml 信息
添加白名单:允许哪些机器能够连接 mycat
找到firewall内容,去掉注释,修改如下:
- 修改 path 变量
vim /root/.bash_profile
source /root/.bash_profile
- vim /etc/profile
source /etc/profile
- 启动 mycat
mycat start
netstat -tnulp|grep 66
tcp 0 0 :::8066 :::* LISTEN 26511/java vim
tcp 0 0 :::9066 :::* LISTEN 26511/java
mycat status
- 检测是否能正常访问数据端口:(模拟应用访问mycat,用户名、密码要找好)
mysql -uroot -p123456 -h172.16.33.33 -P8066 -DTESTDB
检测是否能正常访问管理端口:(管理一个节点、增加一个节点等)
mysql -uroot -p123456 -h172.16.33.33 -P9066 -DTESTDB
监测应用端能否访问数据端口(安装mysal客户端)
mysql -uroot -p123456 -h172.16.33.33 -P8066
- mycat排错
mycat console
- ecshop的搭建
- 安装 Apache 和 php:
yum install httpd php* -y
- 验证 php 是否安装成功
rpm -qa|grep php
- 修改 httpd 相关的配置文件
vim /etc/httpd/conf/httpd.conf
vim /etc/httpd/conf.d/php.conf
vim /etc/php.ini(去掉分号,改为上海)
- 上传 ecshop 到 2 台应用服务器并移动到/var/www/html/下:
unzip ECShop_V3.0.0_UTF8_release0530.zip
mv ECShop_V3.0.0_UTF8_release0530/* /var/www/html/
cd /var/www/html/install/data
rm -f data_zh_cn.sql structure.sql
// (覆盖structure.sql和data_zh_cn.sql文件到/var/www/html/install/data
目录下)原始的做法
- 给必要目录修改权限:
cd /var/www/html
chmod 777 data/ cert/ images/ includes/ temp/ themes/ -R
- 添加httpd服务开机自启(默认占用80端口):
chkconfig --add httpd
chkconfig httpd on
chkconfig --list|grep httpd
service httpd restart
- 该页面是前台初始化应用数据的方式(用户名可以为mycat):
- 和下面的效果相同,以下内容可不做
在主服务器上新建数据库:
create database TESTDB character set =utf8;
将建表语句和数据直接在主库上执行:
- 修改 ecshop 中连接数据库的信息(通过用户名、密码访问mycat,应该和mycat白名单中一样):
vim /var/www/html/data/config.php
service httpd restart
五、nginx 负载均衡的搭建
- 安装 nginx
rpm -ivh nginx-1.11.11-1.el6.ngx.x86_64.rpm
- 编辑 nginx 的配置文件
修改后端负载均衡的配置(放在http内容下):
vim /etc/nginx/nginx.conf | # vim /usr/local/nginx/conf/nginx.conf
upstream mysvr {
server 172.16.55.55:80 weight=5;
server 172.16.66.66:80 weight=5;
}
修改基本的网页配置(上传文件):
vim /etc/nginx/conf.d/default.conf | vim /usr/local/nginx/conf/nginx.conf
- 启动 nginx 负载均衡及添加开机自启动(会占用80端口)
service nginx start
netstat -tnulp|grep nginx
chkconfig nginx on
chkconfig --list|grep nginx
- 通过刷新访问 nginx 的 IP 地址看 mycat 机器端看负载均衡配置是否成功
Nginx地址:http://172.16.77.77/