一、主从复制配置环境。
1、准备5个虚拟机master、slave、slave1、amoeba、client。
2、配置master虚拟机。
2.1安装MySQL数据库。
yum -y install mariadb
2.2安装ntp服务,定义主从时间同步。
yum -y install ntp
vim /etc/ntp.conf
修改ntp配置文件
server 127.127.1.0
fudge 127.127.1.0 stratum 8
2.3配置MySQL数据库
vim /etc/my.conf
修改配置文件将内容写到mysql下
server-id=11
log_bin=master-bin
log-slave-updates=true
重启服务
systemctl restart mariadb
配置可用的访问用户
grant replication slave on *.* to 'slave'@'192.168.115.%' identified by '123.com';
flush privileges;
查看日志信息文件
show master status;
主服务器配置完成,在从服务器配置完成前不要在操作主服务器。
3、配置slave、slave1从服务器。
从服务器也要安装ntp
3.1修改配置文件
vim /etc/my.conf
修改配置文件将内容写到mysql下
server-id=22
relay-log=slave-bin
relay-log-index=slave-bin.index
3.2指定master并开启服务
change master to master_host='192.168.115.128',master_user='slave',master_password='123.com',master_log_file='master-bin.000003',master_log_pos=555;
slave start
3.3查看slave状态
确认线程状态
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两条是yes证明可以实现主从复制
3.4slave1虚拟机同上操作,创建新的用户slave1
主服务器
grant replication slave on *.* to 'slave1'@'192.168.115.%' identified by '123.com';
flush privileges;
第二个从服务器
change master to master_host='192.168.115.150',master_user='slave1',master_password='123.com',master_log_file='master-bin.000001',master_log_pos=884;
slave start ;
二、读写分离配置环境
1、主从服务器配置登录用户
1主2从都要创建登录用户
grant all on *.* to 'test'@'192.168.115.%' identified by '123.com';
flush privileges;
2、安装配置amoeba环境
2.1将Java改为1.6版本
将文件放入虚拟机并运行
./jdk-6u14-linux-x64.bin
运行后按住Enter不松到
Do you agree to the above license terms? [yes or no]
输入yes后按Enter建安装
最后按Enter建安装完成
2.2在配置文件中添加变量
vim /etc/profile
配置文件中输入
JAVA_HOME=/usr/local/jdk1.6
CLASSPATH=$CLASSPATH:$JVA_HOME/lib:$JAVA_HOME/jre/lib
AMOEBA_HOME=/usr/local/amoeba
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$AMOEBA_HOME/bin
export JAVA_HOME CLASSPATH PATH AMOEBA_HOME
刷新配置文件
source /etc/profile
2.3删除原有java命令,建立新的命令链接。
删除原有java命令
rm -rf /usr/bin/java
建立命令链接
ln -s /usr/local/jdk1.6/bin/java /usr/bin/java
2.4安装amoeba
将tar包放入虚拟机并安装到指定位置
tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba
2.5更改配置文件
客户端链接配置文件
/usr/local/amoeba/conf/amoeba.xml
#定义客户端访问amoeba的用户名
<property name="user">amoeba</property>
#定义客户端访问amoeba的密码
<property name="password">123.com</property>
#定义默认池(客户端访问的默认服务器)的名称
<property>name="defaultPool">master</property>
#定义可写池
<property name="writePool">master</property>
#定义可读池
<property name="readPool">slaves</property>
链接数据库配置文件
/usr/local/amoeba/conf/dbservers.xml
#写入amoeba访问后台Mariadb数据库的用户名
<property name="user">test</property>
#写入amoeba访问后台Mariadb数据库的密码
<property name="password">123.com</property>
#写入主从数据库地址
<dbServer name="master" parent="abstractServer">
<property name="ipAddress">192.168.115.150</property>
<dbServer name="slave" parent="abstractServer">
<property name="ipAddress">192.168.115.151</property>
<dbServer name="slave1" parent="abstractServer">
<property name="ipAddress">192.168.115.152</property>
#定义从服务器地址池
<dbServer name="slaves" virtual="true">
<property name="poolNames">slave,slave1</property>
2.6启动amoeba
2.7客户端登录amoeba
3、验证
3.1在主服务器建库和表
create database jx;
create table jx;
insert into jx value('李斯');
3.2客户端查看表
select * from jx;