项目:配置LAMP和mysql读取分离和主从分离
实验环境:
centos01mysql backup和centos02mysql backup和centos03位mysql master和LNMP 和centos04为amoeba和 win702为客户端验证使用
- 安装三台mysql服务器和master上安装ntp同步时间使用
同步时间主MySQL服务器上设置开机自动启动ntp
[root@centos02 ~]# vim /etc/ntp.cong
18 restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap 允许192.168.100.0段使用时间服务器
19 server 127.127.1.0 时间服务器地址ntp监听地址
20 fudge 127.127.1.0 stratum 8 设置时区
其他两个从mysql服务器同步主mysql的时间使用ntpdate 192.168.100.30
安装mysql主和从1从2
主
安装依赖程序
切换linux.iso光盘tar解压mysql压缩包
进入安装位置
配置mysql
编译安装mysql
验证安装是否成功
生成主配置文件
生成服务控制文件
添加服务开机自动启动
优化MySQL命令
立即生效优化
创建mysql用户和组并加入mysql组中
设置目录所有者为mysql用户和组
初始化mysql服务
启动服务并设置开机自动启动
验证端口号3306
创建mysql账户并登录验证
从01和从02验证(操作和主03一样)
01
02
- 修改主配置文件实现主从复制
主
[root@centos02 ~]# vim /etc/my.cnf
49 log-bin=mysql-bin 启二进制日志
57 server-id = 10 sql服务器的ID为10
58 log-slave-update = ture 开启日志复制功能 允许从服务器复制主
重启服务
从1
[root@centos01 ~]# vim /etc/my.cnf
49 log-bin=mysql-bin 开启二进制功能
57 server-id = 20 从MySQL服务器的ID为20
58 relay-log=relay-log-bin 设置读取日志
59 relay-log-index=slave-relay-bin.index 从master复制日志
重启服务
从2
[root@centos02 ~]# vim /etc/my.cnf
49 log-bin=mysql-bin 开启二进制功能
57 server-id = 30 从MySQL服务器的ID为30
58 relay-log=relay-log-bin 设置读取日志
59 relay-log-index=slave-relay-bin.index 从master复制日志
重启服务
在主msyql服务器给从服务器授权
grant replication slave on . to ‘slave’@‘192.168.100.%’ identified by ‘pwd@123’;
查看主服务的状态
登录从服务器设置数据同步
change master to master_host=‘192.168.100.30’,master_user=‘slave’,master_password=‘pwd@123’,master_log_file=‘mysql-bin.000004’,master_log_pos=263;
启动节点
查看节点状态
验证主从复制
- 配置读写分离
环境增加amoeba centos04
Centos05为客户端
配置hosts文件指定名字
[root@centos01 ~]# vim /etc/hosts
192.168.100.30 master
192.168.100.10 slave01
192.168.100.20 slave02
Scp复制到其他两个服务器上
从主中复制jdk和amoeba到centos04amoeba服务器中
然后在centos04上进行解压配置安装jdk和amoeba服务也安装mysql
解压jdk中间输入yes
[root@centos04 src]# ./jdk-6u14-linux-x64.bin
移动安装目录
[root@centos04 src]# mv jdk1.6.0_14/ /usr/local/jdk
创建amoeba安装目录
[root@centos04 ~]# mkdir /usr/local/amoeba
授权
[root@centos04 ~]# chmod -R 755 /usr/local/amoeba
解压到安装目录
[root@centos04 ~]# tar zxvf /usr/src/amoeba-mysql-binary-2.2.0.tar.gz -C usr/local/amoeba
设置环境变量
[root@centos04 ~]# 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
更新变量
[root@centos04 ~]# source /etc/profile.d/jdk.sh
检查jdk版本
[root@centos04 ~]# java -version
- 配置amoeba服务
设置amoeba访问mysql账户(在主服务器上创建bob)
mysql> grant all on . to ‘bob’@'192.168.100.%'identified by ‘pwd@123’;
修改amoeba登录的用户和密码
[root@centos04 ~]# vim /usr/local/amoeba/conf/amoeba.xml
30 amoeba 设置账户
31 pwd@123 设置密码
114 master 默认池为master
115 master 指定被写的服务器
116 slaves 指定被读的服务器 slaves有多个从服务器
修改amoeba服务器配置文件添加服务器
[root@centos04 ~]# vim /usr/local/amoeba/conf/dbServers.xml
映射账户密码bob pwd@123
26 bob 映射账户主服务器数据库中的bob
27 pwd@123 映射密码
在池中添加服务器
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
启动服务并监听端口号
[root@centos04 ~]# /usr/local/amoeba/bin/amoeba start&
配置客户端验证主从复制和读取分离
[root@centos05 ~]# yum -y install mariadb
登录amoeba服务器
[root@centos05 ~]# mysql -uamoeba -ppwd@123 -h 192.168.100.40 -P8066
创建测试表
查看从服务器是否同步
停止从服务器客户端添加表数据验证是否是读写分离
客户端创建tom并查看验证
开启从服务在验证读写分离
- 配置LAMP
L:linux系统
A:apache
M:mysql
P:php
1) 安装依赖
依赖软件
[root@centos03 ~]# yum -y install zlib-devel libxml2-devel
安装加密工具libmcrypt
[root@centos03 ~]# tar zxvf /iso/libmcrypt-2.5.8.tar.gz -C /usr/src/ 解压
[root@centos03 ~]# cd /usr/src/libmcrypt-2.5.8/ 进入目录
[root@centos03 libmcrypt-2.5.8]# ./configure && make && make install 安装
[root@centos03 libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt* /usr/lib/ 优化
安装mhash
[root@centos03 mhash-0.9.9.9]# ./configure && make && make install 安装
[root@centos03 mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash* /usr/lib 优化
安装mcrypt
[root@centos03 mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib 指定全局变量 设置环境变量不然报错
[root@centos03 mcrypt-2.6.8]# ./configure 编译
[root@centos03 mcrypt-2.6.8]# make && make install 安装 make安装不成功的话remove卸载make重新安装
2) 安装apache
配置apache
[root@centos03 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-cgi --enable-charset-lite
安装
优化命令
生成服务控制文件并授权执行权限
修改apache服务控制文件
检查apache配置文件
添加httpd为系统服务并设置服务开机自动启动
启动服务并监听端口号
3)配置安装php
解压
配置
[root@centos03 php-5.3.28]# ./configure --prefix=/usr/local/php --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php --enable-mbstring
[root@centos01 php-5.3.28]# ./configure
–prefix=/usr/local/php 安装位置
–with-mcrypt 加载mcrypt加密工具
–with-apxs2=/usr/local/httpd/bin/apxs 加载apache的apxs 模块
–with-mysql=/usr/local/mysql/ mysql安装位置
–with-mysqli=/usr/local/mysql/bin/mysql_config mysql扩展工具的位置
–with-config-file-path=/usr/local/php 修改php的主配置文件位置 安装到哪修改到哪
–enable-mbstring 启用支持更多字符功能
安装
生成服务控制文件
[root@centos03 php-5.3.28]# cp php.ini-production /usr/local/php/php.ini
修改主配置文件支持中文
[root@centos03 php-5.3.28]# usr/local/php/php.ini
修改项
784 default_charset = “utf-8” 支持中文
修改zend位置
[root@centos03 ~]# tar zxvf /usr/src/lamp/zendguardloader-php-5.3-linux-glibc23-i386.tar.gz -C /usr/src/lamp 解压缩
[root@centos03 ~]# cd /usr/src/lamp/ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/ 进入目录
[root@centos03 php-5.3.x]# cp ZendGuardLoader.so /usr/local/php /lib/php修改php主配置文件加载zend
[root@centos03 php-5.3.x]# vim /usr/local/php/php.ini
1 [PHP] 这个下插入
3 zend_extension=/usr/local/php/lib/php/ZendGuardLoader.so 加载目录
4 zend_loader.enable=1 开启模块
修改apache主配置文件
[root@centos03 php-5.3.x]# vim /usr/local/httpd/conf/httpd.conf
167 DirectoryIndex index.html index.php 支持php主页
310 AddType application/x-httpd-php .php 加载php模块
重启访问验证
[root@centos03 ~]# systenctl restart httpd
编辑一个php测试文件由于访问验证
[root@centos03 ~]# vim /usr/local/httpd/htdocs/index.php
客户端验证
3) 上线php服务
解压项目压缩包
[root@centos03 ~]# tar zxvf /iso/phpmyadmin-3.3.10-all-languages.tar.gz -C /usr/src
进入目录并移动项目位置进行上线
[root@centos03 ~]# cd /usr/src
[root@centos03 src]# mv phpMyAdmin-3.3.10-all-languages/ /usr/local/httpd/htdocs/phpMyadmin
生成Myadmin配置文件
进入目录进行生成
[root@centos03 src]# cd /usr/local/httpd/htdocs/phpMyadmin/ 进入目录
[root@centos03 phpMyadmin]# cp config.sample.inc.php config.inc.php 生成配置文件
客户端访问验证
验证主从复制
mysql> show databases;