785 views
Liunx-服务安装

Centos6 mysql-proyx读写分离

1、安装

[code]wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-Proxy/mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz

useradd  -r  mysql-proxy

tar  zxvf  mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz  -C  /usr/local

mv  /usr/local/mysql-proxy-0.8.4-linux-el6-x86-64bit  /usr/local/mysql-proxy[/code]

2、配置环境变量

[code]vim  /etc/profile

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

3、启动MYSQL-Proxy中间件

proxy服务器:192.168.77.61 写服务器(主):192.168.77.73   读服务器(从):192.168.77.74   账户:admin 密码:admin
[code]mysql-proxy –daemon –log-level=debug –user=mysql-proxy –keepalive –log-file=/var/log/mysql-proxy.log –plugins=”proxy” –proxy-backend-addresses=”192.168.77.73:3306″ –proxy-read-only-backend-addresses=”192.168.77.74:3306″ –proxy-lua-script=”/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua” –plugins=admin –admin-username=”admin” –admin-password=”admin” –admin-lua-script=”/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua”[/code]

4、Mysql-Proxy的相关参数详解如下

–help-all                                    :获取全部帮助信息;

–proxy-address=host:port              :代理服务监听的地址和端口,默认为4040;

–admin-address=host:port           :管理模块监听的地址和端口,默认为4041;

–proxy-backend-addresses=host:port   :后端mysql服务器的地址和端口;

–proxy-read-only-backend-addresses=host:port :后端只读mysql服务器的地址和端口;

–proxy-lua-script=file_name          :完成mysql代理功能的Lua脚本;

–daemon                                          :以守护进程模式启动mysql-proxy;

–keepalive                                        :在mysql-proxy崩溃时尝试重启之;

–log-file=/path/to/log_file_name      :日志文件名称;

–log-level=level                                 :日志级别;

–log-use-syslog                                 :基于syslog记录日志;

–plugins=plugin                                :在mysql-proxy启动时加载的插件;

–user=user_name                              :运行mysql-proxy进程的用户;

–defaults-file=/path/to/conf_file_name :默认使用的配置文件路径,其配置段使用[mysql-proxy]标识;

–proxy-skip-profiling                         :禁用profile;

–pid-file=/path/to/pid_file_name      :进程文件名;

5、查看端口  netstat -ntl

其中4040为proxy代理端口用于WEB应用连接,4041管理端口用于SA或者DBA管理

6、基于4041端口MySQL-Proxy查看读写分离状态,登录4041管理端口

mysql  -h192.168.77.61  -uadmin  -p  -P 4041

select * from backends;#查看读写分离状态up则正常

+————-+——————–+——-+——+——+——————-+
| backend_ndx  | address                | state      | type   | uuid  | connected_clients |
+————-+——————–+——-+——+——+——————-+
| 1 | 192.168.77.73:3306                  | up          | rw      | NULL |                0             |
| 2 | 192.168.77.74:3306                  | up           | ro       | NULL |                 1            |
+————-+——————–+——-+——+——+——————-+

7、如果状态不是up,则需要登陆到4040端口(这个端口的账户密码为数据库授权的账户密码 root:123456)

mysql -h192.168.77.61 -uroot -p123456 -P4040 -e “show databases;”  #多执行这条命令,直至unknow变成up

8、测试读写分离是否成功

读写分离数据测试,登录到从库,进行数据写入和测试,在丛库上创建discuz测试库,并写入内容

[code]mysql

use discuz;

create table t1 (id char(4),name char(10));

insert into t1 value(1,”ying”);

select * from t1;

+——+——+
| id | name |
+——+——+
| 1 | ying |
+——+——+

[/code]

用4040端口登陆查看(测试读)

mysql -h192.168.77.61 -uroot -p123456 -P4040 -e “select * from discuz.t1;”   #能查到上面t1这个表的信息,则说明是走的是从库,因为主库上面是没有刚刚新建的这个表信息的

9、安装完discuz论坛后,需要改一下数据库端口的配置

find / -name config_global.php

vim config_global.php

查找dbhost段,将192.168.77.61 改成192.168.77.61:4040

Leave a Reply

影子专属博客 赣ICP备17013143号