yum安装LNMP与数据库主从复制读取分离结合
实验:使用yum安装LNMP与数据库主从复制读取分离结合
1.安装配置mariadb服务和配置hosts文件
安装
启动服务并设置开机自动启动
创建mysql用户(mysql作用和使用和mariadb作用和使用基本一样mariadb更简单)
配置hosts文件方便通信
scp将hosts文件复制到其他服务器上
[[email protected] ~]# scp /etc/hosts [email protected]:/etc/hosts
[[email protected] ~]# scp /etc/hosts [email protected]:/etc/hosts
[[email protected] ~]# scp /etc/hosts [email protected]:/etc/hosts
2.配置主从复制和读取分离
1)主从复制
修改主的配置文件并重启服务
[[email protected] ~]# vim /etc/my.cnf
log-bin=mysql-bin 开启二进制日志
server-id = 10 主mysql服务器的ID为10
log-slave-update = ture 开启日志复制功能
[[email protected] ~]# systemctl restart mariadb
从1
log-bin=mysql-bin 开启二进制功能
server-id = 20 从MySQL服务器的ID为20
relay-log=relay-log-bin 设置读取日志
relay-log-index=slave-relay-bin.index 从master复制日志
从2
log-bin=mysql-bin 开启二进制功能
server-id = 30 从MySQL服务器的ID为30
relay-log=relay-log-bin 设置读取日志
relay-log-index=slave-relay-bin.index 从master复制日志
查看日志文件
[[email protected] ~]# cd /var/lib/mysql
配置主从复制查看mysql状态
MariaDB [(none)]> show master status;
创建数据账户授权从服务器
MariaDB [(none)]> grant replication slave on . to ‘slave’@‘192.168.100.%’ identified by ‘[email protected]’;
登录从mysql服务器设置数据同步
mariaDB [(none)]> change master to master_host=‘192.168.100.10’,master_user=‘slave’,master_password=‘[email protected]’,master_log_file=‘mysql-bin.000001’,master_log_pos=245;
启动节点
MariaDB [(none)]> show slave;
查看节点状态
MariaDB [(none)]> show slave status\G
验证主从复制
2)配置读取分离
scp复制需要的压缩包
[[email protected] ~]# scp /mnt/jdk-6u14-linux-x64.bin [email protected]:/usr/src/
[[email protected] ~]# scp /mnt/amoeba-mysql-binary-2.2.0.tar.gz [email protected]:/usr/src/
解压jdk压缩包中间 有个问题输入yes
[[email protected] src]# ./jdk-6u14-linux-x64.bin
移动安装位置
[[email protected] src]# mv jdk1.6.0_14/* /usr/local/jdk
安装amoeba
创建amoeba目录并授权
[[email protected] src]# mkdir /usr/local/amoeba
[[email protected] src]# chmod -R 755 /usr/local/amoeba
解压amoeba
[[email protected] src]# tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba
设置jdk环境变量
[[email protected] ~]# vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=
C
L
A
S
S
P
A
T
H
:
CLASSPATH:
CLASSPATH:JAVA_HOME/lib:
J
A
V
A
H
O
M
E
/
j
r
e
/
l
i
b
e
x
p
o
r
t
P
A
T
H
=
JAVA_HOME/jre/lib export PATH=
JAVAHOME/jre/libexportPATH=JAVA_HOME/lib:
J
A
V
A
H
O
M
E
/
j
r
e
/
b
i
n
/
:
JAVA_HOME/jre/bin/:
JAVAHOME/jre/bin/:PATH:
H
O
M
E
/
b
i
n
e
x
p
o
r
t
A
M
O
E
B
A
=
/
u
s
r
/
l
o
c
a
l
/
a
m
o
e
b
a
/
e
x
p
o
r
t
P
A
T
H
=
HOME/bin export AMOEBA=/usr/local/amoeba/ export PATH=
HOME/binexportAMOEBA=/usr/local/amoeba/exportPATH=PATH:$AMOEBA/bin
更新环境变量
[[email protected] ~]# source /etc/profile.d/jdk.sh
[[email protected] ~]# java -version
配置amoeba
设置amoeba访问mysql账户(在主服务器上创建bob)
MariaDB [(none)]> grant all on . to ‘bob’@‘192.168.100.%’ identified by ‘[email protected]’;
修改amoeba登录账户密码,账户是amoeba密码是[email protected]
[[email protected] ~]# vim /usr/local/amoeba/conf/amoeba.xml
30 amoeba 设置账户
32 [email protected] 设置密码
115 master 默认池为master
116 master 指定被写的服务器
117 slaves 指定被读的服务器 slaves有多个从服务器
3)修改amoeba配置文件添加服务器
[[email protected] ~]# vim /usr/local/amoeba/conf/dbServers.xml
26 bob 映射账户主服务器数据库中的bob
27 [email protected] 映射密码
42 在池中添加master
43
44 192.168.100.10 IP地址
45
46
47 添加第一台从服务器
48
49 192.168.100.20 IP地址
50
51
52 添加第二台从服务器
53
54 192.168.100.30 IP地址
55
56
58 添加组slaves
59
60 1
61 slave01,slave02包含的服务器salve01和slave02
62
63
启动服务
[[email protected] ~]# /usr/local/amoeba/bin/amoeba start&
监听端口号8066
[[email protected] ~]# netstat -anptu | grep 8066
验证读取分离
客户端安装mariadb访问amoeba服务器
验证读取分离
切换数据库
MySQL [(none)]> use bob
创建表student表
MySQL [bob]> create table student (name char(4), phone char(11), primary key (phone));
创建bob
查看
关闭从服务器创建查看
开启再次查看
3.yum安装LNMP
[[email protected] yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
安装epel-release
[[email protected] yum.repos.d]# yum -y install epel-release
安装nginx
[[email protected] yum.repos.d]# yum -y install nginx
启动服务设置开机自动启动
[[email protected] yum.repos.d]# systemctl start nginx
[[email protected] yum.repos.d]# systemctl enable nginx
访问验证
[[email protected] yum.repos.d]# curl http://192.168.100.10
**
**
默认网站位置
[[email protected] yum.repos.d]# cd /usr/share/nginx/html/
修改网站主页为www.benet.com
4.安装php
[[email protected] ~]# yum install -y php php-devel php-fpm php-mysql php-common php-devel php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel
修改nginx主配置文件
43 index index.html index.php;
location ~ .php$ {
root /usr/share/nginx/html/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
index index.html index.php;
include fastcgi.conf; 调用php-fpm进程
}
启动php-fpm并监听端口号9000
[[email protected] ~]# systemctl start php-fpm
[[email protected] ~]# netstat -anptu | grep 9000
创建/var/www/benetcom目录
[[email protected] ~]# mkdir -p /var/www/benetcom/
修改php-fpm配置文件
创建测试页
[[email protected] www]# vim /var/www/benetcom/index.php
验证
5.验证通过部署服务
上传需要上线的服务
解压
找到服务目录
上线服务
修改目录权限和所有者
[[email protected] html]# chmod -R 755 /usr/share/nginx/html/
[[email protected] html]# chown -R nginx:nginx /usr/share/nginx/html/
进入数据库中创建论坛数据库
MariaDB [(none)]> create database bbs;
授权bbs账户访问bbs数据库
MariaDB [(none)]> grant all on bbs.* to ‘bbs’@‘localhost’ identified by ‘[email protected]’;
验证
删除index.html
主从复制验证