首页 > 编程知识 正文

mysql有什么用,mysql索引有什么用

时间:2023-05-04 08:51:58 阅读:192812 作者:1385

2016-08-21 回答

安装 mysql-proxy 步骤如下:

解压 mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz

tar zxvf mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz

cp -r mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit /usr/local/proxy-mysql

新建或编辑 /etc/mysql-proxy.cnf 文件,添加以下内容 ( 具体参数根据实际情况修改 ) :

vi /etc/mysql-proxy.cnf

[mysql-proxy]

admin-username = zhangdongyu

admin-password = 123123

daemon = true

keepalive = true

proxy-backend-addresses = 192.168.0.88:3306

proxy-read-only-backend-addresses = 192.168.0.88:3307

proxy-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua

admin-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/admin-sql.lua

log-file = /usr/local/proxy-mysql/cn.log

log-level = debug

主要参数注解:

proxy-backend-addresses mysql 主库(写)地址

proxy-read-only-backend-addresses mysql 从库(读)地址

proxy-lua-script 读写分离脚本

admin-lua-script admin 脚本

admin-username 数据库用户名(主从上都需建立相同用户)

admin-password 数据库密码

daemon daemon 进程运行

keepalive 保持连接(启动进程会有 2 个,一号进程用来监视二号进行,如果二号进程死掉自动重建,此参数在旧版本中无法使用)

编辑 profile/.bash_profile 脚本

vi /etc/profile( 或者 .bash_profile)

lua_path="/usr/local/proxy-mysql/share/doc/mysql-proxy/?.lua"

export lua_path

export path=$path:/usr/local/proxy-mysql/勤劳的绿茶

:wq

source /etc/profile

为方便建立建立 mysql-proxy.sh 脚本

#!/勤劳的绿茶/bash

mode=$1

if [ -z "$mode" ] ; then

mode="start"

fi

case $mode in

start)

mysql-proxy --defaults-file=/etc/mysql-proxy.cnf>/usr/local/proxy-mysql/cn.log &

;;

stop)

killall -9 mysql-proxy

;;

restart)

if $0 stop ; then

$0 start

else

echo "restart failed!"

exit 1

fi

;;

esac

exit 0

启动 mysql-proxy

sh 脚本

启动: ./mysql-proxy.sh 或 ./mysql-proxy.sh start

启动日志

重启: ./mysql-proxy.sh restart

停止: ./mysql-proxy.sh stop

测试:

为达到测试效果,修改 admin-sql.lua 脚本以下两行

vi /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua

if not proxy.global.config.rwsplit then

proxy.global.config.rwsplit = {

min_idle_connections = 1, # 修改最小连接为 1

max_idle_connections = 2, # 修改最大连接为 2

is_debug = true #debug 为 true

}

end

重启 mysql-proxy 代理

开启两个终端分别连接代理:

one : ./mysql -h192.168.0.88 -uzhangdongyu -p123123 -p4040

two : ./mysql -h192.168.0.88 -uzhangdongyu -p123123 -p4040

可看到连接成功信息:

操作 one 客户端:

执行 select 语句观察数据库 log 文件

select * from z_member_info;

观察主从库日志文件,发现查询发生在主库?

主库: 192.168.0.88:3306 日志文件: tail -f /usr/local/mysql/localstate/mysqlexecute.log

这是因为 mysql-proxy 代理会检测客户端连接,当连接没有超过 min_idle_connections 预设值时,不会进行读写分离,即查询操作会发生到主库上。

操作 two 客户端:

执行 select 语句观察数据库 log 文件

select * from z_member_info;

观察主从库日志文件,发现主库没有任何记录,查询日志记录在从库。

从库: 192.168.0.88:3306 日志文件: tail -f /usr/local/mysql3307/localstate/mysqlexecute.log

操作两个终端进行 insert 操作,会发现写操作始终被主库( 3306 )日志文件记录。

至此 mysql-proxy 安装测试完成。

注:生产环境一定要根据实际情况配置相关文件,至于 lua 文件强烈推荐读者自行,目前正在研究 lua 文件的优化与定制,不久会发上来。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。