目录
新建3台虚拟机,1台做主服务器,2台做从服务器,实现主从复制
一、概括
搭建ntp服务器,然后搭建一台mariadb主2台mariadb从复制服务器,并且安装amoeba实现读写分离
二、操作步骤
新建3台虚拟机,1台做主服务器,2台做从服务器,实现主从复制
主服务器搭建ntp,从服务器在服务器对时
安装ntp
yum install ntp -y
配置ntp 文件目录/etc/ntp.conf
server 127.127.1.0 #定义时间服务器
fudge 127.127.1.0 stratum 8 #定义时间层次
启动ntp服务
systemctl start ntpd
从服务器对时
netdate 192.168.115.128
搭建master主服务器
在主服务器/etc/my.cnf如下添加配置
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;
查看master的日志信息
show master status;
搭建slave与slave1从服务器
修改slave主配置文件 路径/etc/my.cnf
server-id=22
relay-log=slave-bin
relay-log-index=slave-bin.index
运行mariadb服务,并且指定master服务器
change master to master_host='192.168.115.128',master_user='slave',master_password='123.com',master_log_file='master-bin.000002',master_log_pos=476;
开启slave,并且查看状态
slave start; #开启slave
show slave status\G; 查看状态
下面框里面的值等于‘yes’表示开启成功
验证主从复制,主库新建cs库,看看从服务器是否同步过来
master主库新建了个cs库
看看slave库有没有同步过去
再创建slave1从服务器,与上边slave操作一致
测试
新建一台虚拟机,搭建amoeba,做读写分离
首先在master定义amoeba能够访问Mariadb的用户
grant all on *.* to 'test'@'192.168.115.%' identified by '123.com';
下载jdk安装包,与amoeba安装包,这边由于提前下载好了,直接解包
上图可以看出jdk没有执行权限,先赋予他执行权限
chmod +x jdk-6u14-linux-64.bin
安装jdk1.6
./jdk-6u14-linux-64.bin
按回车到这,输入yes
出现done说明安装完成
可以看出root用户下面多出来一个jdk1.6.0_14,把他移动到/usr/local/jdk1.6下
mv jdk1.6.0_14/ /usr/local/jdk1.6
配置环境变量
在/etc/profile配置环境变量
JAVA_HOME=/usr/local/jdk1.6
CLASSPATH=$CLASSPATH:$JVA_HOME/lib:$JAVA_HOME/jre/lib
AMOEBA_HOME=/usr/local/amoeba
PATH=$PATH$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$AMOEBA_HOME/bin
export JAVA_HOME CLASSPATH PATH AMOEBA_HOME PATH
刷新,并且查看
source /etc/profile
echo $PATH
Java -version可以看出不是我们刚刚装的1.6版本,这边我们做个更改
删除/usr/bin/java 吧刚才的1.6中的bin/java 创建个软连接过去
ln -s /usr/local/jdk1.6/bin/java /usr/bin
可以看到我们的版本已经变成1.6了
安装amoeba
指定解压
tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba
配置amoeba
配置/usr/local/amoeba/conf/dbservers.xml #链接服务器的配置
配置/usr/local/amoeba/conf/amoeba.xml #链接客户端的配置
启动amoeba
可以看到8066端口起来了
开一台虚拟机做客户机验证
mysql -P8066 -h192.168.115.155 -uamoeba -p123.com #我们amoeba虚拟机ip是155
登录正常
可以正常写入,查看
现在我们停掉一台从,在做测试,可以看到如下图,停掉的从看不到我们写入的数据,没有停掉的可以看到写入的数据
总结
提示:这里对文章进行总结:
如果slave start出现初始化失败时,先看看网路是否通信,从/var/lib/mysql下找到相关文件删除掉,重新指定一下主服务器