服务器-mysql5.6读写分离中遇到的问题

问题描述

mysql5.6读写分离中遇到的问题

再做读写分离时,这样做是没问题的
[root@proxy mysql-proxy]# mysql-proxy --daemon --plugins=proxy --log-level=debug --log-file=/var/log/mysql-proxy.log --proxy-read-only-backend-addresses=192.168.85.145:3306 --proxy-backend-addresses=192.168.85.144:3306 --proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua --plugins=admin --admin-username=admini --admin-password=admini --admin-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua

无论是4041端口还是4040端口都能登录上去也添加了后端服务器,日志显示:
[root@proxy mysql-proxy]# tail /var/log/mysql-proxy.log
2015-12-31 10:50:41: (critical) plugin proxy 0.8.5 started
2015-12-31 10:50:41: (critical) plugin admin 0.8.5 started
2015-12-31 10:50:41: (debug) max open file-descriptors = 1024
2015-12-31 10:50:41: (message) proxy listening on port :4040
2015-12-31 10:50:41: (message) added read/write backend: 192.168.85.144:3306
2015-12-31 10:50:41: (message) added read-only backend: 192.168.85.145:3306
2015-12-31 10:50:41: (message) admin-server listening on port :4041

但是这样写不是很麻烦嘛,就想着编写一个配置文件 ,通过读取配置文件中的设置启动mysql-proxy,但是4040端口却无论如何也无法启动

第一次配置文件内容:
[root@proxy ~]# cat /etc/mysql-proxy.conf
[mysql-proxy]
pid-file = /var/run/mysql-proxy.pid
log-file = /var/log/mysql-proxy.log
log-level = debug
plugins = admin
plugins = proxy
#
#Proxy Configuration
user = proxy
proxy-address = 192.168.85.128:4040
proxy-backend-addresses = 192.168.85.144:3306
proxy-read-only-backend-addresses = 192.168.85.145:3306
proxy-lua-script = /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
#

Admin Configuration

admin-username = admini
admin-password = admini
admin-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua

然后mysql-proxy --daemon --defaults-file=/etc/mysql-proxy.conf

此时的日志:
2016-01-01 16:28:09: (critical) plugin proxy 0.8.5 started
2016-01-01 16:28:09: (debug) max open file-descriptors = 1024
2016-01-01 16:28:09: (message) proxy listening on port 192.168.85.128:4040
2016-01-01 16:28:09: (message) added read/write backend: 192.168.85.144:3306
2016-01-01 16:28:09: (message) added read-only backend: 192.168.85.145:3306
2016-01-01 16:28:09: (debug) now running as user: proxy (496/493)
后端服务器也都加了,4040端口启动了,也能正常登录上去,但是4041端口没有开启;

然后,我改了一下配置文件(其实就是proxy和admin插件的位置换了一下)
第二次配置文件内容:
[mysql-proxy]
pid-file = /var/run/mysql-proxy.pid
log-file = /var/log/mysql-proxy.log
log-level = debug
plugins = proxy
plugins = admin
#
#Proxy Configuration
user = proxy
proxy-address = 192.168.85.128:4040
proxy-backend-addresses = 192.168.85.144:3306
proxy-read-only-backend-addresses = 192.168.85.145:3306
proxy-lua-script = /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
#proxy-skip-profiling = true
#

Admin Configuration

#admin-address = 0.0.0.0:4041
admin-username = admini
admin-password = admini
admin-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua

再次启动后的日志:
2016-01-01 16:33:35: (critical) plugin admin 0.8.5 started
2016-01-01 16:33:35: (debug) max open file-descriptors = 1024
2016-01-01 16:33:35: (message) admin-server listening on port :4041
2016-01-01 16:33:35: (debug) now running as user: proxy (496/493)
这下子,不仅4040端口未打开,连服务器都未加入,只有4041端口在开着;

以后无论我怎么改配置文件,只要plugins=admin选项在plugins=proxy后都是出现第二种情况也就是只有4041端口打开,只有第一次的配置文件才是4040端口打开,而且怎么都无法做到4040和4041端口同时开启;

怎样才能打开4040和4041端口以及加入后端服务器?还是说配置文件我写错了?

解决方案

MySQL 读写分离
mysql 读写分离
mysql 读写分离

解决方案二:

http://bbs.chinaunix.net/thread-4232418-1-1.html

时间: 2024-12-10 14:10:52

服务器-mysql5.6读写分离中遇到的问题的相关文章

MySQL5.5读写分离配置的详解

一.服务器配置 主库:192.168.204.132 vim /etc/my.cnf server-id= 1 log-bin=mysql-bin binlog_format=mixed #需要同步的二进制数据库名 binlog-do-db=test #不同步的二进制数据库名 binlog-ignore-db=mysql binlog-ignore-db=performance_schema #可选参数 sync-binlog = 1 #日志保留天数 expire_logs_days = 7 从

阿里云数据库全新功能Redis读写分离,全维度技术解析

阿里云Redis读写分离典型场景:如何轻松搭建电商秒杀系统https://yq.aliyun.com/articles/277885 文末有彩蛋,请务必记得看完整哦 背景 目前的阿里云redis不管主从版还是集群规格,slave作为备库不对外提供服务,只有在发生HA,slave提升为master后才承担读写.这种架构读写请求都在master上完成,一致性较高,但性能受到master数量的限制.经常有用户数据较少,但因为流量或者并发太高而不得不升级到更大的集群规格. 为满足读多写少的业务场景,最大

MySQL5.6 实现主从复制,读写分离,分散单台服务器压力

原文:MySQL5.6 实现主从复制,读写分离,分散单台服务器压力 闲来无事,在本地搭建几台虚拟机,准备配一个mysql读写分离的主从配置,版本选用最新版的,mysql.5.6.28 版本,本处使用源码安装(鄙人一向喜欢源码安装,因为centos中鄙人不知道yum安装怎么指定安装目录,还有怎么指定各种配置,不过有些依赖的库之类的反正鄙人不直接用,使用源码安装到时还得指定安装目录,而且有时各种不匹配也是醉了) 安装环境:Centos 6.4 Mysql版本: 主从都使用MySQL5.6.28 机器

MySQL5.6主从复制(读写分离)方案

一.前言:为什么MySQL要做主从复制(读写分离)? 通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低. 为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻主数据库的负载. 而且如果主数据库宕机,可快速将业务系统切换到从数据库上,可避免数据丢失. 二.MySQL主从复制(读写分离)和集群的区别: 我对MySQL也是刚开始研究,不是很专业.我的理解是: 1.主从复制(读写分离):一般需要两台及以上数据库服务器即可(一台用于写入数据,一台用于同步主

MySQL5.6 Replication主从复制(读写分离) 配置完整版_Mysql

MySQL5.6主从复制(读写分离)教程 1.MySQL5.6开始主从复制有两种方式: 基于日志(binlog): 基于GTID(全局事务标示符). 需要注意的是:GTID方式不支持临时表!所以如果你的业务系统要用到临时表的话就不要考虑这种方式了,至少目前最新版本MySQL5.6.12的GTID复制还是不支持临时表的. 所以本教程主要是告诉大家如何通过日志(binlog)方式做主从复制! 2.MySQL官方提供的MySQL Replication教程: http://dev.mysql.com/

MySQL5.6主从复制与基于amoeba实现读写分离

Mysql5.6主从复制 1.特性分析说明: mysql 5.6支持多线程复制的机制并且mysql 5.6还引用了GTID的概念,使得其复制功能的配置.监控及管理变得更加易于实现,且更加健壮. TID:事务的ID号:也就是说在mysql复制中每一个事务都有自己的ID号(随机数) GTID:全局事务ID,在整个事务架构中每一个事务ID号是唯一的,不止是在一个节点上而是整个主从复制架构中每任何两个事务的ID号都不会相同的,这就是全局事务ID. 全局事务ID是怎么生成的?简单来讲是由mysql服务器自

redis作为mysql的缓存服务器(读写分离) (转)

一.redis简介Redis是一个key-value存储系统.和Memcached类似,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步.在部分场合可以对关系数据库起到很好的补充作用.它提供了Java,C/C++(hiredis),C#,PHP,JavaScript,Perl,Object-C,Python,Ruby等客户端,使用很方便. 二.架构图<ignore_js_

云服务器 ECS 配置:利用MySQL读写分离,提升应用数据吞吐性能

利用MySQL读写分离,提升应用数据吞吐性能 背景 一般情况下,对数据库的读和写都在同一个数据库服务器中操作时,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过读写分离来减轻主数据库的负载.本篇文章分别从应用层和系统层来介绍读写分离的实现方法. 应用层实现方法: 应用层中直接使用代码实现,在进入Service之前,使用AOP来做出判断,是使用写库还是读库,判断依据可以根据方法名判断,比如说以query.find.get等开头的就走读库,其他的走写库. 优点: 1.多数据源切换方便

服务器-关于读写分离、数据同步的问题

问题描述 关于读写分离.数据同步的问题 简单了解了一下读写分离的实现机制和具体操作,但是还有部分不是特别明白. 假设现在我有两台服务器,一台线上正式使用,另一台用于作为备用服务器,但是数据和第一台服务器是同步的.现在为了能充分利用其两台机子,做了读写的分离.把查询的所有业务都丢给第二台服务器,而写入.删除.修改等操作都交给第一台服务器.这是我简单理解的读写分离的机制. 不知道这样对不对. 那么 如果我这样理解的话,我发现是有问题的. 如果原来的备用服务器是用来做为提供查询的用的,而原来的正式服务