注意:这里配置完之后,不会同步之前的数据库,只会同步在配置完之后的数据
ntpdate time.windows.com
1、主服务器(master),修改配置文件
[root@master ~]# vim /etc/my.cnf
在末尾加上这三行代码:
server-id = 11 #服务ID
log_bin = master-bin #加载对应二进制日志
log-slave-updates = true #允许从服务器访问
2、保存并退出,然后重启数据库
systemctl restart mysqld
这里可以到数据库查看结果:
进入到数据库后:
show master status
3、授权用户来同步数据,这里是允许从服务器,通过slave用户通过192.168.12.138的地址进行访问(IP和密码自己改)
grant replication slave on *.* to 'slave'@'192.168.12.437' identified by 'JGhuluwa.123';
1、从服务器(salve),修改配置文件
[root@slave ~]# vim /etc/my.cnf
在末尾上加上这三行:
server-id = 22 #服务器ID
relay-log = relay-log-bin #日志
relay-log-index = slave-log-bin.index #中继日志文件名
2、保存并退出,重启数据库
systemctl restart mysqld
进入从服务器数据库:
1)这里的IP是主服务器master的ip;
2)slave是主服务器上面配置的用户名,master_password是授权用户的密码
3)master_log_file是日志文件名;master_log_pos是位置,在主服务器中查询到对应的值
change master to master_host='192.168.12.437',master_user='slave',master_password='JGhuluwa.123',master_log_file='master-bin.000001',master_log_pos=154;
3、启动服务
start slave;
4、查看配置结果
show slave status \G;
表示配置成功
1、在主服务器创建一个数据库
create database master_slave;
show databases;
2、在从服务器查看
show databases;
到这里主从复制已经配置完毕
目的:充分利用slave服务器,而不光是复制主服务器的数据
在代码中根据select、insert进行路由分类,这类方法也是目前生成环境应用最广泛的,有点事性能较好,不需要增加额外的硬件开支;缺点——由开发人员来实现(个人认为是优点)
代理一般位于客户端和服务器之间,代理服务器街道客户端请求后通过判断转发到数据库,有两个代表性程序。MySQL-Proxy 和 Amoeba——这里使用Amoeba
这里使用 jdk-6u45-linux-x64.bin版本 和 Amoeba-mysql-binary-2.2.0.tar.gz
(想要的可以V我50)
[root@agency ~]# chmod +x jdk-6u14-linux-x64.bin
[root@agency ~]# ./jdk-6u14-linux-x64.bin
然后一直空格,最后输入yes
修改位置并改名
[root@agency ~]# mv jdk1.6.0_14/ /usr/local/jdk1.6
配置环境变量
[root@agency ~]# vim /etc/profile
在最后一行加上下面内容,配置JDK和amoeba的环境变量
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export AMOEBA_HOME=/usr/local/amoeba
export PATH=$PATH:$JAVA_HOME/bin:$AMOEBA_HOME/bin
然后引用一下
[root@agency ~]# source /etc/profile
查看结果
[root@agency ~]# mkdir amaeba #创建一个文件夹
[root@agency ~]# tar zxf amoeba-mysql-binary-2.2.0.tar.gz -C amoeba #解压
[root@agency ~]# mv amaeba /usr/local/ #移动到文件夹
启动Amoeba
amoeba start
1)修改amoeba的配置文件amoeba.xml
[root@agency conf]# vim /usr/local/amoeba/conf/amoeba.xml
在第30和32行进行设置
还有115行
2)修改配置文件dbServers.xml
[root@agency conf]# vim /usr/local/amoeba/conf/dbServers.xml
这里配置从服务器
mysql> grant all on *.* to 'test'@'192.168.12.432' identified by 'JGhuluwa.123';
注意这里是8066端口
链接起来进行插入数据和查询数据,抓包即可看到效果。