Mysql-Proxy实现mysql读写分离、负载均衡 (转)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql-Proxy实现mysql读写分离、负载均衡 (转),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4257字,纯文字阅读大概需要7分钟。
内容图文
在mysql执行查询语句,输出的结果则为:
此查询是自动切换到192.168.1.60中的数据中
现在mysql-proxy服务连接的是192.168.0.60数据库,如果现在把该mysql服务停止,启动1.61的mysql服务,再在192.168.1.61客户端执行
# mysql -u user -h 192.168.1.60 -p -P 4010
查询出的结果又会是192.168.1.61 数据库的数据,如图:
提示上面错误信息,说明正在试图连接其他服务器。
说明:负载均衡中的连接没有主从之分,在多个服务器同时启动的时候,先启动的服务器,就被标识为主,如果主挂掉,连接的其他服务器会被标识成主。
在做读写分离测试时:
主要是针对程序测试,需要在对两个数据库同时作添加查询的操作,那样,添加会自动切换到主库,读取数据会切换到从库。
我们已经实现了MySQL读写分离,目前所有的写操作都全部在Master主服务器上,用来避免数据的不同步;在程序里做测试时,连接的服务器地址为:192.168.1.60 port=4040 (.net 连接数据库web.config连接字符串)
这里必须跟上端口号,指定连接是mysql-proxy代理服务器,在代码中写入插入、查询语句,进行测试,会发现读写操作不同的数据库。
另外,所有的读操作都分摊给了其它各个Slave从服务器上,用来分担数据库压力。
总结:在上述环境中,mysql-proxy和mysql-master、mysql-slave三台服务器均存在单点故障。如果在可用性要求较高 的场合,单点隐患是绝对不允许的。为了避免mysql-proxy单点隐患有两种方法,一种方法是mysql-proxy配合keepalived做双 机,另一种方法是将mysql-proxy和应用服务安装到同一台服务器上;为了避免mysql-master单点故障可以使用 DRBD+heartbear做双机;避免mysql-slave单点故障增加多台mysql-slave即可,因为mysql-proxy会自动屏蔽后 端发生故障的mysql-slave。
附录:
Mysql 配置文件:
1 [mysqld]
2datadir=/var/lib/mysql
3socket=/var/lib/mysql/mysql.sock
4user=mysql
5 #server-id= 2
6 log-bin= mysql-bin
7 #master-host= 192.168.1.60
8 #master-user= user
9 #master-password= 123456
10 #master-port= 3306
11 #Disabling symbolic-links is recommended to prevent assorted security risks
12symbolic-links=0
13log-slow-queries = var/lib/mysql/slow-query.log
14back_log=1000
15key_buffer_size = 300M
16max_allowed_packet = 4M
17thread_stack = 256K
18tmp_table_size = 200M
19sort_buffer_size = 32M
20read_buffer_size = 4M
21read_rnd_buffer_size = 16M
22join_buffer_size = 8M
23myisam_sort_buffer_size = 64M
24table_cache= 1024
25 thread_cache_size= 120
26query_cache_size = 64M
27tmp_table_size = 256M
28max_connections = 1024
29thread_cache_size = 80
30max_connect_errors = 10000000
31wait_timeout=30// sleep连接休眠时间 超过10秒则终止连接
32thread_concurrency= 8
33innodb_flush_log_at_trx_commit = 1
34innodb_log_buffer_size = 2M
35innodb_thread_concurrency=8
36record_buffer = 16M
37interactive_timeout = 30
38skip_name_resolve // 建议打开
39binlog_format=mixed // 建议开启 以免在事务操作时日志出错
40 # Toenable the InnoDB Plugin, uncomment the 2 next lines
41#ignore-builtin-innodb
42#plugin-load=innodb=ha_innodb_plugin.so
43
44 # Toenable InnoDB-related INFORMATION_SCHEMA tables
45 # Jointhe following options to above directive
46 ;innodb_trx=ha_innodb_plugin.so
47 ;innodb_locks=ha_innodb_plugin.so
48 ;innodb_cmp=ha_innodb_plugin.so
49 ;innodb_cmp_reset=ha_innodb_plugin.so
50 ;innodb_cmpmem=ha_innodb_plugin.so
51 ;innodb_cmpmem_reset=ha_innodb_plugin.so
52
53[mysqld_safe]
54log-error=/var/log/mysqld.log
55pid-file=/var/run/mysqld/mysqld.pid
56
57
58 [mysql]
59default-character-set=gb2312
常用my.cnf配置文件
Mysql慢日志查询
分析sql查询语句,可以打开mysql中的log_slow_queries 参数
打开方式是在my.cnf中添加log-slow-queries= var/lib/mysql/slow-query.log
配合参数long_query_time =10(单位为秒) 只的是超过10s的查询会记录该日志
Mysql在多并发出现大量“unauthenticated user x.x.x.x:2501 None Connect Reading from net”
信息时,需要在my.cnf配置文件中添加skip-name-resolve 参数,
它将禁止 MySql Server 对外部连接进行 DNS 解析,使用这一选项可以消除 MySql 进行 DNS 解析的时间。
但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求,即不能使用Localhost主机名的方式访问
Mysql-Proxy实现mysql读写分离、负载均衡 (转)
标签:
本文系统来源:http://www.cnblogs.com/sandea/p/4986840.html
内容总结
以上是互联网集市为您收集整理的Mysql-Proxy实现mysql读写分离、负载均衡 (转)全部内容,希望文章能够帮你解决Mysql-Proxy实现mysql读写分离、负载均衡 (转)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。