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