mysql atlas 安装_Mysql Atlas 安装记录

Atlas是360团队弄出来的一套基于MySQL-Proxy基础之上的代理,修改了MySQL-Proxy的一些BUG,并且优化了很多东西。

Atlas官方链接: https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md

Atlas下载链接: https://github.com/Qihoo360/Atlas/releases

依赖包安装

****************************************************************************************

lua安装

-------------------------------------------

yum install -y libtermcap-devel ncurses-devel libevent-devel readline-devel

tar -zxvf lua-5.1.5.tar.gz

chown -R root.root *

cd lua-5.1.5/

修改当前目录下的“Makefile”中的 INSTALL_TOP= /usr/local为 INSTALL_TOP= /usr/local/lua

主要是为了避免与系统自带的lua库发生冲突的可能

vim Makefile

INSTALL_TOP= /usr/local/lua

make linux install

glib-2.49安装

----------------------------------------

rpm -q ncurses readline readline-devel lua libffi libffi-devel libiconv xz glib2 cmake popt libnl libevent libevent-devel openssl-devel libtermcap-devel ncurses-devel

yum install -y libffi-devel libtermcap-devel

http://www.rpmfind.net/linux/rpm2html/search.php?query=libevent-devel

rpm -ivh libevent-devel-2.0.21-4.el7.x86_64.rpm

libiconv依赖包

tar xvzf libiconv-1.14.tar.gz

chown -R root.root *

cd libiconv-1.14

cd srclib

sed -i -e '/gets is a security/d' ./stdio.in.h

cd ..

注意不要建立独立目录,一定要安装在/usr/local目录下,不然安装glib时会报/usr/bin/ld: cannot find -liconv

./configure --prefix=/usr/local gl_cv_header_working_stdint_h=yes

make

make install

pkg安装

tar -zxvf pkg-config-0.29.2.tar.gz

chown -R root.root *

cd pkg-config-0.29.2/

./configure --enable-iconv=no --with-libiconv=gnu --with-internal-glib

make

make install

ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2

ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/libiconv.so.2

pkg-config --version

0.29.2

pcre安装

tar -zxvf pcre-8.39.tar.gz

chown -R root.root *

cd pcre-8.39/

./configure --enable-utf8 --enable-unicode-properties

make

make install

ln -s /usr/local/lib/libpcre.so.1 /lib

ln -s /usr/local/lib/libpcreposix.so.0 /lib

glib安装

rpm -q libffi-devel

xz -d glib-2.49.7.tar.xz

chown -R root.root *

tar -xvf glib-2.49.7.tar

mkdir /usr/local/glib-2.49.7

cd glib-2.49.7/

./configure --prefix=/usr/local/glib-2.49.7 --with-libiconv=gnu LIBFFI_CFLAGS="-I/usr/local/include" LIBFFI_LIBS="-L/usr/local/lib -lffi"

make

make install

配置PKG-CONFIG

# find /usr/ -name pkgconfig

/usr/lib64/pkgconfig

/usr/share/pkgconfig

/usr/local/lib/pkgconfig

/usr/local/lib64/pkgconfig

/usr/local/mysql/lib/pkgconfig

/usr/local/glib-2.49.7/lib/pkgconfig

# cd /usr/local/glib-2.49.7/lib/pkgconfig

# ls

gio-2.0.pc gio-unix-2.0.pc glib-2.0.pc gmodule-2.0.pc gmodule-export-2.0.pc gmodule-no-export-2.0.pc gobject-2.0.pc gthread-2.0.pc

vim .bash_profile

export PKG_CONFIG_PATH=/usr/local/glib-2.49.7/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/mysql/lib/pkgconfig:$PKG_CONFIG_PATH

. ./.bash_profile

测试glib pkg

vim hello.c

#include

#include

int main(int argc, char** argv){

GList* list=NULL;

list=g_list_append(list,"Hello world!");

list=g_list_append(list,"made by pcat");

list=g_list_append(list,"http://www.cnblogs.com/perfei/");

printf("The first item is %s\n",g_list_first(list)->data);

return 0;

}

编译如下:

gcc hello.c -o hello $(pkg-config --cflags --libs glib-2.0)

# ls -ltr | grep hello

-rw-r--r-- 1 root root 305 11月 20 16:47 hello.c

-rwxr-xr-x 1 root root 8648 11月 20 17:05 hello

# ./hello

The first item is Hello world!

Atlas数据库中间件安装配置

****************************************************************************************

安装

--------------------------------------------------------------------------------------------

tar -zxvf Atlas-2.2.1.tar.gz

chown -R root.root *

cd Atlas-2.2.1/

mkdir /usr/local/mysql-proxy

./configure --prefix=/usr/local/mysql-proxy \

--with-lua=/usr/local/lua \

--with-mysql=/usr/local/mysql \

GLIB_CFLAGS="-I/usr/local/glib-2.49.7/include/glib-2.0" \

GLIB_LIBS="-L/usr/local/glib-2.49.7/lib/ -lglib-2.0" \

GMODULE_CFLAGS="-I/usr/local/glib-2.49.7/include" \

GMODULE_LIBS="-L/usr/local/glib-2.49.7/lib -lgmodule-2.0" \

GTHREAD_CFLAGS="-I/usr/local/glib-2.49.7/include" \

GTHREAD_LIBS="-L/usr/local/glib-2.49.7/lib -lgthread-2.0" \

LUA_CFLAGS="-I/usr/local/lua/include" \

LUA_LIBS="-L/usr/local/lua/lib -llua-5.1" \

CFLAGS="-DHAVE_LUA_H -O2" \

LDFLAGS="-L/usr/local/lib -L/usr/local/lib64 -lm -ldl -lcrypto"

Atlas2.2.1 对应的是 mysql5.6 的版本,使用mysql5.7时需要进行以下调整

共四处需要替换,详见错误信息

vim src/network-mysqld-packet.c

:%s/CLIENT_SECURE_CONNECTION/CLIENT_RESERVED2/g

共一处需要替换,详见错误信息

vim ./plugins/admin/admin-plugin.c

:%s/CLIENT_SECURE_CONNECTION/CLIENT_RESERVED2/g

make

make如果报错处理,可进行以下处理

ln -s /usr/local/glib-2.49.7/lib/glib-2.0/include/glibconfig.h /usr/local/glib-2.49.7/include/glib-2.0

make install

----------------------------------------------------------------------

Libraries have been installed in:

/usr/local/mysql-proxy/lib/mysql-proxy/plugins

If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the `-LLIBDIR'

flag during linking and do at least one of the following:

- add LIBDIR to the `LD_LIBRARY_PATH' environment variableduring execution

- add LIBDIR to the `LD_RUN_PATH' environment variableduring linking

- use the `-Wl,-rpath -Wl,LIBDIR' linker flag

- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

----------------------------------------------------------------------

cd /usr/local

mv mysql-proxy atlas-2.2.1 && ln -s atlas-2.2.1 mysql-proxy

配置文件

--------------------------------------------------------------------------------------------

/usr/local/mysql-proxy/bin/encrypt Admin_123

ywy55weCQG6TZ6zxvGQr9A==

/usr/local/mysql-proxy/bin/encrypt rootroot

MdUKAaW7vcwa8s/oWZlMvQ==

vim /usr/local/mysql-proxy/conf/atlas.cnf

[mysql-proxy]

admin-username = atlasadmin

admin-password = Admin_123

proxy-backend-addresses = 10.168.21.186:3306

proxy-read-only-backend-addresses = 10.168.21.186:3306@1,10.168.21.187:3306@2,10.168.21.188:3306@2

pwds = admin:ywy55weCQG6TZ6zxvGQr9A==,root:MdUKAaW7vcwa8s/oWZlMvQ==

daemon = true

keepalive = true

event-threads = 16

log-level = message

log-path = /usr/local/mysql-proxy/log

sql-log = ON

proxy-address = 0.0.0.0:3309

admin-address = 0.0.0.0:3307

charset = utf8

启动

--------------------------------------------------------------------------------------------

/usr/local/mysql-proxy/bin/mysql-proxyd atlas start

OK: MySQL-Proxy of atlas is started

# ps -ef | grep atlas

root 26516 1 0 14:42 ? 00:00:00 /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/atlas.cnf

root 26517 26516 0 14:42 ? 00:00:00 /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/atlas.cnf

启动脚本

# vim /etc/init.d/atlas

#!/bin/sh

#

# mysql-proxy This script starts and stops the mysql-proxy daemon

#

# chkconfig: - 78 30

# processname: mysql-proxy

# description: mysql-proxy is a proxy daemon to mysql

# config: /usr/local/mysql-proxy/conf/mysql-proxy.cnf

# pidfile: /usr/local/mysql-proxy/log/mysql-proxy.pid

#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

DAEMON="/usr/local/mysql-proxy/bin/mysql-proxy"

CONFIGFILE="/usr/local/mysql-proxy/conf/atlas.cnf"

PIDFILE="/usr/local/mysql-proxy/log/mysql-proxy.pid"

LOCKFILE="/var/lock/subsys/mysql-proxy"

PROG=`basename $DAEMON`

RETVAL=0

start() {

echo -n $"Starting ${PROG}......"

[ -x $DAEMON ] || exit 5

[ -f $CONFIGFILE ] || exit 6

${DAEMON} --defaults-file=${CONFIGFILE} || echo -n "${PROG} already running"

RETVAL=$?

echo

[[ $RETVAL -eq 0 ]] && touch $LOCKFILE

return $RETVAL

}

stop() {

echo -n $"Stopping ${PROG}......"

if [[ `ps aux | grep bin/mysql-proxy | grep -v grep | wc -l` -gt 0 ]]; then

kill -TERM `ps -A -oppid,pid,cmd | grep bin/mysql-proxy | grep -v grep | awk '{print $2}'`

fi

RETVAL=$?

echo

[[ $RETVAL -eq 0 ]] && rm -f $LOCKFILE $PIDFILE

return $RETVAL

}

restart() {

stop

sleep 1

start

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

restart

;;

condrestart)

[[ -e $LOCKFILE ]] && restart

;;

*)

echo "Usage: $0 {start|stop|restart|condrestart}"

RETVAL=1

;;

esac

exit $RETVAL

chmod +x /etc/init.d/atlas

chmod 0660 /usr/local/mysql-proxy/conf/atlas.cnf

service atlas stop

service atlas start

# service atlas stop

Stopping mysql-proxy......

# service atlas start

Unit atlas.service could not be found.

Starting mysql-proxy......

# /etc/init.d/atlas stop

Stopping mysql-proxy......

# /etc/init.d/atlas start

Starting mysql-proxy......

# ps -ef | grep atlas

root 27560 1 0 14:49 ? 00:00:00 /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/atlas.cnf

root 27561 27560 0 14:49 ? 00:00:00 /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/atlas.cnf

root 27591 15666 0 14:49 pts/1 00:00:00 grep --color=auto atlas

连接

------------------------------------------------------------------

管理接口登录,即DBA数据库管理使用的接口

# mysql -h127.0.0.1 -P3307 -uatlasadmin -pAdmin_123

[oracle@12cgc oms]$ mysql -h10.168.21.187 -P3307 -uatlasadmin -pAdmin_123

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.0.99-agent-admin

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select * from help;

+-------------------------------+---------------------------------------------------------+

| command | description |

+-------------------------------+---------------------------------------------------------+

| SELECT * FROM help | shows this help |

| SELECT * FROM backends | lists the backends and their state |

| SET OFFLINE $backend_id | offline backend server, $backend_id is backend_ndx's id |

| SET ONLINE $backend_id | online backend server, ... |

| ADD MASTER $backend | example: "add master 127.0.0.1:3306", ... |

| ADD SLAVE $backend | example: "add slave 127.0.0.1:3306", ... |

| REMOVE BACKEND $backend_id | example: "remove backend 1", ... |

| SELECT * FROM clients | lists the clients |

| ADD CLIENT $client | example: "add client 192.168.1.2", ... |

| REMOVE CLIENT $client | example: "remove client 192.168.1.2", ... |

| SELECT * FROM pwds | lists the pwds |

| ADD PWD $pwd | example: "add pwd user:raw_password", ... |

| ADD ENPWD $pwd | example: "add enpwd user:encrypted_password", ... |

| REMOVE PWD $pwd | example: "remove pwd user", ... |

| SAVE CONFIG | save the backends to config file |

| SELECT VERSION | display the version of Atlas |

+----------------------------+---------------------------------------------------------+

16 rows in set (0.00 sec)

工作接口,即应用访问的接口

# mysql -h10.168.21.187 -P3309 -uadmin -pAdmin_123

[oracle@12cgc oms]$ mysql -h10.168.21.187 -P3309 -uadmin -pAdmin_123

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.0.81-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.17 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全志R16平台编译linux系统V1.0.txt 2017/4/11 13:36 (编译请使用编译android的lichee的选项编译生成的.config文件,不然直接编译会报错!!!!) rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ tar zxvf lichee_parrotv1.1_20161202.tar.gz rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ cd lichee/ rootroot@cm-System-Product-Name:/home/wwt/linux_r16/lichee$ ./build.sh config Welcome to mkscript setup progress All available chips: 0. sun8iw5p1 Choice: 0 All available platforms: 0. android 1. dragonboard 2. linux 3. tina Choice: 2 All available kernel: 0. linux-3.4 Choice: 0 All available boards: 0. bell-one 1. evb 2. evb-20 3. evb-30 4. evb-rtl8723bs 5. sc3813r Choice: 3 rootroot@cm-System-Product-Name:/home/wwt/linux_r16/lichee$ ./build.sh 错误1: KCONFIG_AUTOCONFIG=/home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buildroot/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buildroot/build/buildroot-config/autoconf.h KCONFIG_TRISTATE=/home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buildroot/build/buildroot-config/tristate.config BUILDROOT_CONFIG=/home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buildroot/.config /home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buildroot/build/buildroot-config/conf --silentoldconfig Config.in # # make dependencies written to .auto.deps # ATTENTION buildroot devels! # See top of this file before playing with this auto-preprequisites! # make[1]:正在离开目录 `/home/wwt/linux_r16/lichee/buildroot' You must install 'makeinfo' on your build machine makeinfo is usually part of the texinfo package in your distribution make: *** [dependencies] 错误 1 make:离开目录“/home/wwt/linux_r16/lichee/buildroot” ERROR: build buildroot Failed rootroot@cm-System-Product-Name:/home/wwt/linux_r16/lichee$ d/buildroot-config/conf.o /home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buildroot/build/buildroot-config/zconf.tab.o -o /home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buil

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值