Heim >Datenbank >MySQL-Tutorial >编译安装dbproxyaltas

编译安装dbproxyaltas

WBOY
WBOYOriginal
2016-06-07 16:13:001254Durchsuche

前言,目前已经有很多mysql中间层,baidu的 dbproxy,taobao的 tddl ,126 ,alibaba的 corba,360的altas ,mysql-proxy,楼方鑫的oneproxy,sohu的dbproxy,fabric等。有的支持分库分表,有的不支持。选择一款合适的就好。但是,如果做技术选型,还是要谨慎小心。

前言,目前已经有很多mysql中间层,baidu的 dbproxy,taobao的 tddl ,126 ,alibaba的 corba,360的altas ,mysql-proxy,楼方鑫的oneproxy,sohu的dbproxy,fabric等。有的支持分库分表,有的不支持。选择一款合适的就好。但是,如果做技术选型,还是要谨慎小心。选择自主研发还是用现有的第三方产品要慎重。(把libevent看懂了,就能做自主研发,但是要开发出一个稳定版本的,需要一段时间,开发出来后放到线上,会踩到很多坑,个人经验值,没有在线上跑2年时间的产品,不要用。曾今我们自己研发的,跑了差不多3年,直到12年,才稳定下来,之前bug不断)

#安装db【本文来自鸿网互联 (http://www.68idc.cn)】proxy altas 基本上按照朱超 写的这个,就能安装完 http://github.com/Qihoo360/Atlas/wiki/Atlas的安装

一.下载
mkdir -p /data/software && cd /data/software
wget https://github.com/Qihoo360/Atlas/archive/2.2.1.tar.gz
mv 2.2.1.tar.gz atlas.2.2.1.tar.gz
tar zxvf atlas.2.2.1.tar.gz

二.安装库文件
#安装库文件,gcc等编译环境,需要提前配好,这里就掠过了。
yum install -y libevent-devel lua-devel openssl-devel flex mysql-devel
yum install -y xz gettext-devel

# libffi,glib(>2.32)
yum -y install libffi*
cd /data/software
wget http://ftp.acc.umu.se/pub/gnome/sources/glib/2.33/glib-2.33.6.tar.xz
xz -d glib-2.33.6.tar.xz
cd glib-2.33.6
./configure
make
make install
ldconfig

# jemalloc
cd /data/software
wget http://www.canonware.com/download/jemalloc/jemalloc-3.1.0.tar.bz2
tar xvf jemalloc-3.1.0.tar.bz2
make
make install
cp /data/software/jemalloc-3.1.0/lib/libjemalloc.so.1 /usr/local/lib/
ldconfig

三.编译安装Atlas
cd /data/software/Atlas-2.2.1
#修改安装目录 --prefix=/home/mysql/dbproxy
vim bootstrap.sh
#!/bin/sh
base=$(cd "$(dirname "$0")"; pwd)
cd $base
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --with-mysql=/usr --prefix=/home/mysql/dbproxy CFLAGS="-DHAVE_LUA_H -O2" LDFLAGS="-lm -ldl -lcrypto -ljemalloc" LUA_CFLAGS="-I/usr/local/include/" LUA_LIBS="-L/usr/local/lib -llua"
#用惯了,之前我们把dbproxy 安装在 /home/mysql/dbproxy,习惯了

./bootstrap.sh
make && make install
#编译过程中,如果有问题,看 config.log 记录的信息,一般是 jemalloc没安装、版本低,libffi*,glib-2.32,等库版本低或者没安装的问题。

四.配置
1.配置停起脚本mysql-proxyd
vim /home/mysql/dbproxy/bin/mysql-proxyd
修改 proxydir=/usr/local/mysql-proxy 为 proxydir=/home/mysql/dbproxy
#或者 sed -i 's%proxydir=/usr/local/mysql-proxy%proxydir=/home/mysql/dbproxy%g' /home/mysql/dbproxy/bin/mysql-proxyd

2.修改配置文件,后缀名必须是.cnf,如果不想用.cnf,也可以自己去改mysql-proxyd这个脚本
vim /home/mysql/dbproxy/conf/dbproxy.cnf
[mysql-proxy]
admin-username = user
admin-password = pwd
admin-address = 0.0.0.0:2345
proxy-backend-addresses = 192.168.0.220:9858
proxy-read-only-backend-addresses = 192.168.1.221:9858,192.168.0.14:9858
pwds = dbproxy_longxibendi_w: /iZxz+0GRoA=,dbproxy_longxibendi_r:/iZxz+0GRoA=
daemon = true
keepalive = true
event-threads = 4
log-level = message
log-path = /home/mysql/dbproxy/log
sql-log = ON
sql-log-slow = 10
wait-timeout = 10
proxy-address = 0.0.0.0:12340
charset = utf8
client-ips = 127.0.0.1, 192.168.1,192.168.0.220,192.168.1.221

3.mysql,slave上添加账号
master: 192.168.0.220
slave: 192,168.1.221,192.168.0.14

master上:mysql -uroot -p -h127.0.0.1 -P5858
mysql-> grant select,update,delete,insert on longxibendi.* to dbproxy_longxibendi_w@192.168.0.220 identified by '123456';

slave 上,相同授权,注意ip地址是dbproxy的地址

五.启动
1.启动dbproxy
cd /home/mysql/dbproxy/bin
./mysql-proxyd dbproxy start

2.访问测试
mysql -udbproxy_longxibendi_w -h192.168.0.220 -p123456 -P10240
mysql-> show databases;

#可以测试下事务,读写分离,主库宕机、从库宕机故障转移等。

#最后感谢 360 web平台 相关团队

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Kettle_抽取数据举例Nächster Artikel:数据库课程设计再续