首先主从同步,一旦建立,指定了用户,就不能更改了,否则会有错误。1063

Error 'Duplicate entry '%-test-' for key 'PRIMARY'' on query. Default database: 'mysql'. Query: 'INSERT INTO db SELECT *

还没有找到好的解决办法。

因此要还原成2台机器刚刚装好mysql时候的快照来做实验。

主机只修改了下面的名字。

[root@ygy130 ~]# vim /etc/my.cnf

log-bin=mysql-bin-master

重启

[root@ygy130 ~]# mysql -usystem -p123456

mysql> grant all on *.* to user2@'%' identified by '123456';

mysql> flush privileges;

从机

[root@yu131 ~]# vim /etc/my.cnf

server-id       = 2

重启

[root@yu131 ~]# mysql -usystem -p123456

mysql> change master to master_host='192.168.31.130',master_user='user2',master_password='123456';

mysql> start slave;

mysql> show slave status\G

主从同步配置完成。

下面开始做读写分离

实验环境:

mysql-proxy服务端:     yu236            IP:192.168.31.236

mysql服务器(主,负责写)服务端:ygy130   IP:192.168.31.130

mysql服务器(从,负责读)客户端:yu131    IP:192.168.31.131

下面配置yu236主机:

关闭mysqld服务。

[root@yu236 ~]# service mysqld stop
[root@yu236 ~]# chkconfig mysqld off

[root@yu236 ~]# yum install lua

[root@yu236 ~]# tar -xf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local/

名字太长,改短一下

[root@yu236 ~]# cd /usr/local/

[root@yu236 ~]# mv mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy

配置环境变量。

[root@yu236 local]# vim /etc/profile

export PATH=/usr/local/mysql/bin:$PATH
export PATH=/usr/local/mysql-proxy/bin:$PATH

[root@yu236 local]# source /etc/profile

配置读写分离

[root@yu236 local]# ls /usr/local/mysql-proxy/share/doc/mysql-proxy/

[root@yu236 local]# vim /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua

修改
40 min_idle_connections = 4,
41 max_idle_connections = 8,

#修改默认连接,进行快速测试,默认最小4个以上的客户端连接才会实现读写分离,最大链接数为8

注:为了验证试验效果将他改成1 .就是当有一个链接的时候,就实现读写分离的功能。为了清晰的看到读写分离的效果,需要暂时关闭MySQL主从复制功能。

注册账号user1供yu236访问。

[root@ygy130 ~]# mysql -usystem -p123456

mysql> grant all on db.* to user1@'%'  identified by '123456' ;

mysql> flush privileges;

[root@yu131 ~]# mysql -usystem -p123456

mysql> grant all on db.* to user1@'%'  identified by '123456' ;

mysql> flush privileges;

启动服务mysql-proxy服务

[root@yu236 local]# mysql-proxy --proxy-read-only-backend-addresses=192.168.31.131:3306 --proxy-backend-addresses=192.168.31.130:3306 --proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua &

参数说明:
--proxy-read-only-backend-addresses=192.168.31.131:3306 # 定义后端只读服务器
--proxy-backend-addresses=192.168.31.130:3306 #定义后端mysql主服务器地址,指定mysql写主服务器的端口
--proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua & #指定lua脚本,在这里,使用的是rw-splitting脚本,用于读写分离
当有多个只读服务器时,可以写多个以下参数:
--proxy-read-only-backend-addresses=192.168.31.64:3306 # 定义后端只读服务器
--proxy-read-only-backend-addresses=192.168.31.65:3306 # 定义后端只读服务器
#--proxy-address=192.168.31.236:3307 指定mysql proxy的监听端口,默认为:4040

[root@yu236 local]# lsof -i :4040
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysql-pro 2040 root 9u IPv4 13618 0t0 TCP *:yo-main (LISTEN)
You have new mail in /var/spool/mail/root

验证阶段

随便使用一天机器,远程登陆yu236,通过代理连接数据库。

[root@ygy130 ~]# mysql -uuser1 -p123456 -P4040 -h192.168.31.236

看一下有什么库。

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db |
+--------------------+
2 rows in set (0.00 sec)

进入db库

mysql> use db
Database changed

看一下有什么表
mysql> show tables;
Empty set (0.00 sec)

创建一个表。

mysql> create table test(id int);

插入数据

mysql>  insert into test values(1);

mysql>  insert into test values(2);

查看数据。

mysql> select * from test;
+------+
| id |
+------+
| 1 |
| 2 |

使用本地登录130和131

mysql> use db

mysql> select * from test;

+------+
| id |
+------+
| 1 |
| 2 |
+------+

成功。

mysql主从同步加读写分离的更多相关文章

  1. MySQL主从同步、读写分离配置步骤、问题解决笔记

    MySQL主从同步.读写分离配置步骤.问题解决笔记 根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记:       现在使用的两台服务器已经 ...

  2. mysql主从同步+mycat读写分离+.NET程序连接mycat代理

    背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很 ...

  3. MySQL主从同步、读写分离配置步骤

    现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168. ...

  4. MySQL主从同步和读写分离的配置

    主服务器:192.168.1.126 从服务器:192.168.1.163 amoeba代理服务器:192.168.1.237 系统全部是CentOS 6.7 1.配置主从同步 1.1.修改主服务器( ...

  5. mysql主从同步与读写分离

    为了解决数据库服务的高可用问题以及负载均衡问题, 1正常情况下可以互为主从,均衡分担数据流量, 2防止数据库服务器在宕机的情况下可以顺利切换到正常的数据库服务器,减少公司的客户流量损失故公司需要搭建数 ...

  6. MySQL主从复制技术与读写分离技术amoeba应用

    MySQL主从复制技术与读写分离技术amoeba应用 前言:眼下在搭建一个人才站点,估计流量会非常大,须要用到分布式数据库技术,MySQL的主从复制+读写分离技术.读写分离技术有官方的MySQL-pr ...

  7. Redis系列之(二):Redis主从同步,读写分离

    1. Redis主从同步 Redis支持主从同步.数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制. 2. 配置主从同步 Mater Slave的模式,从Slave向Maste ...

  8. Redis系列之(二):Redis主从同步,读写分离(转)

    1. Redis主从同步 Redis支持主从同步.数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制. 2. 配置主从同步 Mater Slave的模式,从Slave向Maste ...

  9. windows mysql主 Linux mysql 从 主从同步,读写分离

    Mysql –master linux-slave 一.My.ini: Server-id=1 relay-log=relay-bin relay-log-index=relay-bin-index ...

随机推荐

  1. .NET MVC和.NET WEB api混用时注意事项

    1.同时配置了mvc路由和api路由时,mvc路由无法访问(调用所有mvc路由全部404错误) 在Global.asax中,需注意路由注册的顺序,将api路由注册放在最后: 即将 void Appli ...

  2. 1.1.0 Unity零基础入门2——Roll a Ball

    1. 游戏界面 2.代码 //FoodRotate - - 控制cube旋转 using System.Collections; using System.Collections.Generic; u ...

  3. (C#)原型模式—深复制与浅复制

    1.原型模式 用原型实例指定创建对象的实例,并且通过拷贝这些原型创建新的对象. *原型模式隐藏了创建对象的细节,提高了性能. *浅复制:被复制对象的所有变量都含有与原来对象相同的值,而且所有对其他对象 ...

  4. Java开发工程师(Web方向) - 04.Spring框架 - 期末测试

    Spring框架客观题 Spring框架编程题 http://blog.csdn.net/sinoacc/article/details/51702458 1 (25分) 假设有如下数据表: crea ...

  5. Linux的基础预备知识

       Linux下一切皆文件 1.root@mk-virtual-machine:/home/mk#   root:该位置表示当前终端登录的用户名 mk-virtual-machine:/home/m ...

  6. 对int类型最小值INT_MIN取负值结果不变

    在32位系统中,int类型的最大值是0x7fffffff(即除了最高的1Bit其他31位都为1),而最小值是0x80000000(除了最高1bit,其他31位都为0). 显然,对于最小值求负数是不存在 ...

  7. Alpha冲刺——第三天

    Alpha第三天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...

  8. (转)Android SearchView 搜索框

    如果对这个效果感觉不错, 请往下看. 背景: 天气预报app, 本地数据库存储70个大中城市的基本信息, 根据用户输入的或通过搜索框选取的城市, 点击查询按钮后, 异步请求国家气象局数据, 得到返回的 ...

  9. .net控制台程序Program args参数解析

    一直很有疑问在控制台程序的Main函数中为什么会有个string[] args的参数,又没有什么用. static void Main(string[] args) { } 这几天需要将一个控制台程序 ...

  10. 敏捷冲刺Day1

    前言: 之前的各种对教务系统的分析,再加上我们两三天的讨论和一个小时的站立会议,我们做出最终的决定.--我们决定换个项目主题,将原来的教务辅助系统换成现在的校园帮帮帮服务,并在之后会将完成后的计划书附 ...