yum(mysql主从+proxy读写分离)
Posted make有意义
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yum(mysql主从+proxy读写分离)相关的知识,希望对你有一定的参考价值。
Yum安装mariadb主从+读写分离实验
mysql读写分离的原理:其实就是让Master数据库处理事务性增、删除、修改、更新操作(CREATE、INSERT、UPDATE、DELETE),而让Slave数据库处理SELECT操作,MYSQL读写分离前提是基于MYSQL主从复制,这样可以保证在Master上修改数据,Slave同步之后,WEB应用可以读取到Slave端的数据。
1.yum install mysql-server mysql-devel mysql-libs -y CentOS6.x YUM安装方式
2.环境:centos7.4
192.168.1.108 lap(最后测试从库只有读权限用到)
192.168.1.106 master
192.168.1.107 slave
192.168.1.108 proxy(若果此上没有mysql命令执行,需要安装:yum install mysql -y)
Master\slave分别安装以下mariadb:
yum install mariadb-server mariadb mariadb-libs –y
systemctl restart mariadb.service
1.master主要配置:vi /etc/my.cnf
在主上,给某个用户有从的权限。
mysql
grant replication slave on *.* to ‘mo’@’%’ identified by ‘mo’;
刷新权限:flush privileges;
查看bin-log文件及position点
Show master status;
2.slave主要配置:
vi /etc/my.cnf
Slave指定Master IP、用户名、密码、bin-log文件名mysql-bin及position,代码如下:
mysql
Change master to master_host='ip',master_user='mo',master_password='mo',master_log_file='mysql-bin.00000x',master_log_pos=x;
启动:slave start;
用命令查看主从状态是否连接成功:show slave status\G;
测试主从同步是否成功(在主授权一用户,这个用户在读写分离时也可用到):
主从复制便完成了。接下来是做mysql-proxy,读写分离。
3.proxy读写分离配置:
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 mysql
tar –zxvf mysql-proxy-0.8.4.tar.gz –C /usr/src/
mv /usr/src/mysql-proxy-0.8.4 /usr/local/mysql-proxy
在环境变量配置文件/etc/profile中加入如下代码保存。
vi /etc/profile
export PATH=$PATH:/usr/local/mysql-proxy/
执行如下,使环境变量生效。
source /etc/profile
启动中间件mysql-proxy命令:
mysql-proxy --daemon --log-level=debug --user=mysql-proxy --keepalive --log-file=/var/log/mysql-proxy.log --plugins="proxy" --proxy-backend-addresses="192.168.1.106:3306" --proxy-read-only-backend-addresses="192.168.1.107: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"
以上启动proxy可放到一脚本中来执行启动。
查看启动端口:
Netstat –ntpl | grep mysql-proxy
4040为proxy代理端口用于web应用连接;4041为管理端口,用于SA或DBA管理用
mysql -h 192.168.1.108 -uadmin -p -P 4041
select * from backends; 查看读写分离状态,up为成功。
mysql -h 192.168.1.108 -uJonmo -p -P 4040 -e 'show databases;' 在主从库执行
测试从库只有读权限
1:测试从库只有读权限,在从库创建一数据库,并创建表信息。然后用以下来查询得到结果,得证从有读权限,因为主上没有该数据。
mysql -h 192.168.1.108 -uJonmo -p -P 4040 -e 'select * from jfedu_test.t1;'
将站点数据库指向proxy的4040
1:在站点修改读取mysql的IP为slave的指向:
vi /usr/local/apache/htdocs/test-mysql/config/config_global.php
/usr/local/apache/bin/apachectl restart
==================================================================
主要排解问题点:
Mysql –h 192.168.1.108 –uroot –p –P 4040 –e “show databases;”
这个命令要在主从上面执行
其它问题点:Yum安装mysql与源码安装(源码安装看lamp篇)的mysql来测试数据读写分离的都有操作过了。Proxy只需要在启动命令里指向的两个主从IP换一下再启动便可,其它操作步骤没变化。
以上是关于yum(mysql主从+proxy读写分离)的主要内容,如果未能解决你的问题,请参考以下文章