mysql-proxy读写分离
实验环境:
LAP+
1.安装apache服务(192.168.2.131)
yum install openssl-devel
[root@LAP ~]# tar zxvf httpd-2.2.25.tar.gz -C /usr/src/
[root@LAP ~]# cd /usr/src/httpd-2.2.25/
[root@LAP httpd-2.2.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-rewrite --enable-ssl
root@LAP httpd-2.2.25]# make
root@LAP httpd-2.2.25]# make install
[root@LAP httpd-2.2.25]# /usr/local/httpd/bin/apachectl start

2.部署mysql数据库(单独机器部署/ps:两台数据库为master:192.168.2.134;slave:192.168.2.135)
[root@mysql-master ~]# yum install -y gcc gcc-c++ glibc glibc-devel cmake ncurses-devel ncurses
[root@mysql-master ~]# tar zxvf mysql-5.5.38.tar.gz -C /usr/src/
[root@mysql-master ~]# cd /usr/src/mysql-5.5.38/
[root@mysql-master mysql-5.5.38]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BIG_TABLES=1 -DWITH_DEBUG=0
[root@mysql-master mysql-5.5.38]# make
[root@mysql-master mysql-5.5.38]# make install
[root@mysql-master mysql-5.5.38]# useradd -M -s /sbin/nologin mysql
[root@mysql-master mysql-5.5.38]# chown -R mysql.mysql /usr/local/mysql/
[root@mysql-master mysql-5.5.38]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
[root@mysql-master mysql-5.5.38]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

[root@mysql-master mysql-5.5.38]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@mysql-master mysql-5.5.38]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@mysql-master mysql-5.5.38]# source /etc/profile
[root@mysql-master mysql-5.5.38]# chkconfig --add mysqld
[root@mysql-master mysql-5.5.38]# chkconfig mysqld on
[root@mysql-master mysql-5.5.38]# vim /etc/my.cnf

[root@mysql-master mysql-5.5.38]# /etc/init.d/mysqld start
[root@mysql-master mysql-5.5.38]# mysqladmin -u root password '123.com'
[root@mysql-master mysql-5.5.38]# mysql -u root -p
2.1:mysql-master端

2.2:mysql-slave端

###########mysql正常启动##################
3.安装php服务(ps:与apache同台机器)
[root@LAP ~]# yum install -y zlib-devel libxml2-devel
[root@LAP ~]# tar zxvf php-5.3.28.tar.gz -C /usr/src/
[root@LAP ~]# cd /usr/src/php-5.3.28/
[root@LAP php-5.3.28]# ./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-apxs2=/usr/local/httpd/bin/apxs
[root@LAP php-5.3.28]# make -j8
[root@LAP php-5.3.28]# make -j8 install
[root@LAP ~]# vim /usr/local/httpd/conf/httpd.conf


[root@LAP ~]# vim /usr/local/httpd/htdocs/index.php

[root@LAP ~]# /usr/local/httpd/bin/apachectl restart
验证php与apache是否整合

#######################mysql主从####################
开启master端bin-log日志功能
[root@mysql-master mysql-5.5.38]# vim /etc/my.cnf

[root@mysql-master mysql-5.5.38]# /etc/init.d/mysqld restart
Shutting down MySQL. [确定]
Starting MySQL.. [确定]
[root@mysql-master mysql-5.5.38]# mysql -u root -p
mysql> grant replication slave on *.* to 'slave'@'192.168.2.135' identified by '123456'; #主从复制授权
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
mysql-slave端
[root@mysql-slave mysql-5.5.38]# vim /etc/my.cnf

[root@mysql-slave mysql-5.5.38]# /etc/init.d/mysqld restart
mysql> change master to
-> master_host='192.168.2.134',
-> master_user='slave',
-> master_password='123456',
-> master_log_file='mysql-bin.000004',
-> master_log_pos=630;
Query OK, 0 rows affected (0.03 sec)
mysql> slave start;

mysql> show slave status\G

mysql主从同步完成!!!!!接下来实现mysql-proxy实现读写分离
mysql-proxy端(192.168.2.129)##############
[root@mysql-proxy ~]# wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-Proxy/mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz
[root@mysql-proxy ~]# tar zxvf mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz -C /usr/local
[root@mysql-proxy ~]# cd /usr/local/
[root@mysql-proxy local]# mv mysql-proxy-0.8.4-linux-el6-x86-64bit/ mysql-proxy
[root@mysql-proxy local]# useradd -r mysql-proxy
[root@mysql-proxy local]# vim /etc/profile
#环境变量配置文件/etc/profile中加入代码之后, 执行生效

[root@mysql-proxy local]# source /etc/profile
[root@mysql-proxy 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.2.134" --proxy-read-only-backend-addresses="192.168.2.135" --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"
(1) MYSQL-Proxy启动后,在服务器端查看端口,其中4040为proxy代理端口用于WEB应用连接,4041位管理端口用于SA或者DBA管理
[root@mysql-proxy mysql-proxy]# netstat -anputl | grep mysql-proxy
tcp 0 0 0.0.0.0:4040 0.0.0.0:* LISTEN 3995/mysql-proxy
tcp 0 0 0.0.0.0:4041 0.0.0.0:* LISTEN 3995/mysql-proxy

mysql-master端授权
[root@localhost ~]# mysql -h192.168.20.129 -uadmin -padmin -P 4041
[root@mysql-master mysql-5.5.22]# mysql -u root -p123.com
mysql> grant all on *.* to xiaoyu@'192.168.2.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@localhost ~]# mysql -h192.168.2129 -uxiaoyu -p123456 -P4040 -e "show databases;"

mysql-proxy读写分离的更多相关文章
- Linux MySQL Proxy 读写分离
导读 因为读写分离是建立在MySQL集群主从复制的基础上,还不了解的,先看我另一篇博客:点我直达 MySQL-Proxy简介 mysql-proxy是mysql官方提供的mysql中间件服务,上游可接 ...
- Amoeba搞定mysql主从读写分离
前言:一直想找一个工具,能很好的实现mysql主从的读写分离架构,曾经试用过mysql-proxy发现lua用起来很不爽,尤其是不懂lua脚本,突然发现了Amoeba这个项目,试用了下,感觉还不错,写 ...
- Amoeba实现mysql主从读写分离
Amoeba实现mysql主从读写分离 这段在网上看了下关于amoeba的文章,总体感觉好像要比mysql-proxy好的多,也参考了不少的资料,此文章可能与其他文章作者会有雷同的地方,请谅解,但是此 ...
- python实现mysql的读写分离及负载均衡
Oracle数据库有其公司开发的配套rac来实现负载均衡,目前已知的最大节点数能到128个,但是其带来的维护成本无疑是很高的,并且rac的稳定性也并不是特别理想,尤其是节点很多的时候. 但是,相对my ...
- MySQL ProxySQL读写分离实践
目的 在上一篇文章MySQL ProxySQL读写分离使用初探里初步介绍了ProxySQL的使用,本文继续介绍它的一些特点和DBProxy的性能差异.深入一些去了解ProxySQL,通过测试来说明Pr ...
- MySQL Router实现MySQL的读写分离
1.简介 MySQL Router是MySQL官方提供的一个轻量级MySQL中间件,用于取代以前老版本的SQL proxy. 既然MySQL Router是一个数据库的中间件,那么MySQL Rout ...
- 搭建基于MySQL的读写分离工具Amoeba
搭建基于MySQL的读写分离工具Amoeba: Amoeba工具是实现MySQL数据库读写分离的一个工具,前提是基于MySQL主从复制来实现的: 实验环境(虚拟机): 主机 角色 10.10.10.2 ...
- MySQL的读写分离的几种选择
MySQL的读写分离的几种选择 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 原址如下: http://heylinux.com/archives/1004. ...
- MySQL/MariaDB读写分离配置
DB读写分离描述 数据库的读写分离其实就是为了加减少数据库的压力:数据库的写入操作由主数据库来进行,读取操作由从数据库来进行操作.实现数据库读写分离技术是有很多方法的,在这里我就用一个比较简单的mys ...
- 使用mysql-proxy实现mysql的读写分离
前言: MySQL读写分离是指让master处理写操作,让slave处理读操作,非常适用于读操作量比较大的场景,可减轻master的压力.使用mysql-proxy实现mysql的读写分离,mysq ...
随机推荐
- ISO文件:AMD64和i386的区别
下载kali系统时,出现两个选项:ADM64和i386,那么这两者的区别是什么? i386=Intel 80386.其实i386通常被用来作为对Intel(英特尔)32位微处理器的统称. AMD6 ...
- 将百度坐标转换的javascript api官方示例改写成传统的回调函数形式
改写前: 百度地图中坐标转换的JavaScript API示例官方示例如下: var points = [new BMap.Point(116.3786889372559,39.90762965106 ...
- 【LeetCode】60. Permutation Sequence
题目: The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of t ...
- php的laravel数据库版本管理器migration
第一步:连接数据库 打开.env文件.配置DB_HOST DB_PORT DB_DATABASE=LARAVEL DB_USERNAME DB_PASSWORD 注意DB_DATABASE这一项需要自 ...
- C++函数重载实现的原理以及为什么在C++中使用用C语言编译的函数时,要在函数名称前面加上extern "C"声明
C++相对于C语言而言支持函数重载是其极大的一个特点,相信在使用C语言的时候大家如果要写一个实现两个整型数据相加的函数还要写一个浮点型数据相加的函数,那么这两个函数的名字绝对不可以一样,这样无疑在我们 ...
- 使用base64提升视觉效果体验
最近在做一个微信端的小项目,前端代码写完后,就放在手机端测试,没什么问题,但是页面在加载和渲染时的效果却让人有些不爽,虽然是个小项目,我大可不必做这些,但是看着页面的闪动,就忍不住想做些什么. 先说说 ...
- Java自学手记——多态
对象转型 学习多态前先明白一个叫对象转型的概念,如: class Animal{ void sleep(){ System.out.println("睡觉"); } } class ...
- 如何删除 SQL Server 表中的重复行
第一种:有主键的重复行,就是说主键不重复,但是记录的内容重复比如人员表tab ,主键列id,身份证编号idcard当身份证重复的时候,保留最小id值的记录,其他删除delete a from tab ...
- zlib报“LNK2001:无法解析的外部符号”错误
这个错误一般是由使用导出dll时未加载对应的lib文件导致的,但是工程在正确配置了lib文件的情况下仍然报这个错误,经查,是由于dll导入工程和dll导出工程的函数调用约定不一致导致的. 一.函数调用 ...
- 由max_allowed_packet引发的mysql攻防大战
1.原因 程序的sql语句比较长.max_allowed_packet默认是1024.于是就报错了.一开始手动改 global max_allowed_packet ,改完后.莫名奇妙被还原.后来改配 ...