mysql-proxy怎么搭建

mysql-proxy怎么搭建,第1张

安装 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-addressesmysql 主库(写)地址

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/bin

:wq

source /etc/profile

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

#!/bin/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 文件的优化与定制,不久会发上来。

一、启动mysql服务

(1) rpm方式安装的mysql

-设置自动启动

#ntsysv --level 3

-手工启动

#service mysqld start

(2) 编译安装的mysql

-设置自动启动

#vi /etc/rc.d/rc.local

.......

/usr/local/mysql/bin/mysqld_safe&

........

-手工启动

#/usr/local/mysql/bin/mysqld_safe&

查看文章

mysql服务器(一)2009-06-15 11:18mysql服务器

一. 认识和安装mysql

1. 认识mysql

(1) mysql是一种网络数据库服务器产品

(2) mysql是开源的免费的

(3) mysql是关系型数据库管理系统,支持SQL.

(4) mysql无溢出漏洞

(5) mysql提供丰富的API

(6) mysql提供丰富的数据类型

(7) mysql具较强的移值性

2. 安装mysql软件

(1) rpm安装方式

#rpm -ivh perl-CGI....

perl-DBI....

perl-DBD-MySQL.....

mysq-....

mysql-server....

mysql-devel.....

(2) 编译安装方式

#groupadd mysql

#useradd -g mysql mysql

#tar -xzvf mysql-4.1.19.tar.gz

#cd mysql-4.1.19

#./configure --prefix=/usr/local/mysql

#make

#make install

#cp support-files/my-medium.cnf /etc/my.cnf

#cd /usr/local/mysql

#bin/mysql_install_db --user=mysql

#chown -R root .

#chown -R mysql var

#chgrp -R mysql .

3. 启动mysql服务

(1) rpm方式安装的mysql

-设置自动启动

#ntsysv --level 3

-手工启动

#service mysqld start

(2) 编译安装的mysql

-设置自动启动

#vi /etc/rc.d/rc.local

.......

/usr/local/mysql/bin/mysqld_safe&

........

-手工启动

#/usr/local/mysql/bin/mysqld_safe&

二、mysql的管理

1. 如何连接mysql服务器

(1) Linux客户机

#mysql [-h服务器地址] [-u用户名] [-p口令] [数据库名]

实例:

#mysql

mysql>

#mysql -h192.168.3.1 -uadmin -plinux

mysql>

(2) Windows客户机

-利用第三方mysql客户端软件

-利用浏览器连接(服务器必须安装web管理平台,如:phpmyadmin/webmin)

注:webmin的安装方法

#tar -xzvf webmin-1.25.tar.gz

#cd webmin-1.25

#./setup.sh

2. 数据库管理

(1) 认识mysql的数据库

-mysql服务器默认建立两个数据库,分别是mysql和test其中mysql是系统数据库test是学习数据库

-mysql服务器上的每个数据库都会在相应路径中建立与库同名的目录

-每个数据库可包含若干张表,每张表由*.frm、*.MYD和*.MYI文件构成

(2) 创建数据库

#mysql

mysql>create database 数据库名

实例:

mysql>create database dbinfo

(3) 查看服务器上已创建的数据库

#mysql

mysql>show databases

(4) 打开数据库

#mysql

mysql>use 数据库名;

实例:

mysql>use db1

(5) 删除数据库

#mysql

mysql>drop database 数据库名

实例:

mysql>drop database dbinfo

3. 数据表的管理

(1) mysql提供的数据类型

-数字型

TINYINT 1字节

SMALLINT 2字节

MEDIUMINT 3B

INT 4B

BIGINT 8B

FLOAT[(M,D)] 4B

DOUBEL[(M,D)] 8B

DECIMAL(M,D)

-字符串型

char(M)

varchar(M)

tinytext

text

mediumtext

longtext

enum('..',...)

set(....)

-日期时间型

date

datetime

time

(2) 创建表

#mysql

mysql>use 数据库

mysql>create table 表名 (

列名 数据类型 属性/约束

.......

.....

) 表选项

列属性/约束:

null/not null 是否允许为null

default 值 定义列的默认值

primary key 定义主键

check 表达式 定义列的取值范围

REFERENCES 表名(列名) 定义外部键

表选项:

TYPE=HEAP/ISAM/MYISAM/INNOBDB/BDB/MERGE //定义数据表引擎类型

实例:

mysql>use db1

mysql>create table users (

->id varchar(10) primary key,

->name varchar(20) not null,

->password varchar(30) not null) TYPE=MYISAM

(3) 查看数据库中已建立的表

#mysql

mysql>use 数据库

mysql>show tables

(4) 查看表的结构

#mysql

mysql>use 数据库

mysql>describe 表名

(5) 修改表的结构

#mysql

mysql>use 数据库

mysql>alter table 表名

add 列定义//添加列

|drop 列名//删除列

|add index 索引名 (列名) //添加索引

|drop index 索引名 //删除索引

|modify 列定义 //修改列的定义

|add primary key (列名) //添加主键

|drop primary key //删除主键

|rename 新表名 //修改表名称

实例:mysql>alter table users add memo text

(6) 向表中插入数据

#mysql

mysql>insert into 表名[(列名,...n)] values (值,...)

实例:

mysql>insert into users values ('0001','user1','linux','system admin')

(7) 查看表中数据

#mysql

mysql>select 列名 [as 别名] [,...n]|*|表达式

->from 表名[,...n]

->[where 条件表达式]

->[order by 列名]

->[group by 列名]

->[having 条件表达式]

实例:

mysql>select * from users

mysql>select user,password from users

mysql>select user,password from users where name='user1'

mysql>select * from users order by id desc

mysql>select 性别, count(*) as 人数 from 学生 group by 性别

(8) 删除表中数据

#mysql

mysql>delete from 表名 [where 条件表达式]

实例:

mysql>delete from users

mysql>delete from users where name='user1'

(9) 修改表中数据

#mysql

mysql>update 表名 set 列名=值 [where 条件表达式]

实例:

mysql>update users set password='132' where name='user1'

(10) 删除表

#mysql

mysql>drop table 表名

实例:

mysql>drop table users


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/60026.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-27
下一篇2023-02-27

发表评论

登录后才能评论

评论列表(0条)

    保存