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

yum(mysql主从+proxy读写分离)

在主上,给某个用户有从的权限。

mysql

grant replication slave on *.* to ‘mo’@’%’ identified by ‘mo’;

刷新权限:flush privileges;

查看bin-log文件及position点

Show master status;


2.slave主要配置:

vi /etc/my.cnf

yum(mysql主从+proxy读写分离)

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;

测试主从同步是否成功(在主授权一用户,这个用户在读写分离时也可用到):

yum(mysql主从+proxy读写分离)
yum(mysql主从+proxy读写分离)

主从复制便完成了。接下来是做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管理用

yum(mysql主从+proxy读写分离)
yum(mysql主从+proxy读写分离)

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:测试从库只有读权限,在从库创建一数据库,并创建表信息。然后用以下来查询得到结果,得证从有读权限,因为主上没有该数据。

yum(mysql主从+proxy读写分离)

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

yum(mysql主从+proxy读写分离)
yum(mysql主从+proxy读写分离)
yum(mysql主从+proxy读写分离)

==================================================================

主要排解问题点:

Mysql –h 192.168.1.108 –uroot –p –P 4040 –e “show databases;”

这个命令要在主从上面执行


其它问题点:Yum安装mysql与源码安装(源码安装看lamp篇)的mysql来测试数据读写分离的都有操作过了。Proxy只需要在启动命令里指向的两个主从IP换一下再启动便可,其它操作步骤没变化。


以上是关于yum(mysql主从+proxy读写分离)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL主从读写分离搭建-ShardingSphere-Proxy

mysql-proxy代理加mysql主从实现读写分离

mysql+mysql_proxy实现读写分离

mysql-proxy代理加mysql主从实现读写分离

搭建Mysql-proxy实现主从同步读写分离

mysql主从(基于bin-log)以及mysql-proxy读写分离