安装主从mysql:
1:例如在两台服务器上安装分别安装mysql , yum -y install mysql
2:服务器1的ip是192.168.19.105,服务器2的ip是192.168.19.106 其中105选为主、106选为从
3:安装完2台服务器上的mysql之后并登陆,分别修改mysql登陆的ip权限
mysql -uroot -p 回车 输入密码 进入mysql客户端
命令:use mysql;回车
命令:select host,user,password form user;查看用户主机,
命令:delete from user where password =""; 删除密码为空的数据。
命令:update user set host ="%"; %通配符表示所有机器都可以登陆
4:修改105mysql的配置文件 /etc/my.cnf 添加 server-id=10,log-bin=mysql-bin。
修改106mysql的配置文件 /etc/my.cnf 添加 server-id=1,log-bin=mysql-bin。
注意:server-id 一定不能一样。
5:修改完后刷新权限:flush privileges;
命令:show variables like 'server_id';查看server-id的值
命令:show master status;查看主的状态,有文件名:mysql-bin.000003,位置:106.
命令:配置从服务器:
change master to
master_host='192.168.19.105',
master_user='root',
master_password='root',
master_log_file='mysql-bin.000003',
master_log_pos=106;
启动slave: start slave;
查看salve状态:show slave status\G;其中Slave_IO_Running与Slave_SQL_Running的值都必须为你YES,才表明状态正常。
测试主从复制:
创建数据库:create database testdata;
创建表:create table testtable (id int(3),name char(10));
插入数据:insert into testtable values(1,"testName");
分别登陆mysql客户端 select * from testable;进行查看
6:搭建读写分离:服务器:192.168.19.107
1:mysql-proxy
2:检查系统所需软件包
通过:rpm -qa|grep name 的方式验证以下软件是否已全部安装。
gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmcrypt* libtool* flex* libevent* glib readline*
若缺少相关的软件包,可以通用yum -y install 方式在线安装,或者直接从系统安装光盘中找到并通过rpm -ivh方式安装。
3:编译安装lua
mysql-proxy的读写分离主要通过rw-splitting.lua脚本实现的,因此需要安装lua;
linux自带lua,如果没有则要自己安装。
采用源码安装:
cd /opt/install
wget http:/www.lua.org/ftp/lua-5.1.4.tar.gz
tar -zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
vi src/Makefile在CFLAGS=-O2-Wall $(MYCFLGS)这一行记录里加上 -fPIC,更改为CFLAGS=-O2-Wall -fPIC $(MYCFLAGS)来避免编译过程出错。
make linux make install
查看linux内核:uname -a 命令
命令:find share/ rw-* 查找
其他:share/doc/mysql-proxy/rw-splitting.lua 脚本路径;
下载mysql-proxy 进入目录 创建scripts 目录。并复制 rw-splitting.lua 到当前目录。
进入bin目录 ./mysql-proxy 启动代理。
状态为:2016-09-05 12:30:04: (critical) plugin proxy 0.8.4 started
7:配置代理
查看帮助文档:./mysql-proxy --help-all
./mysql-proxy --proxy-backend-addresses=192.168.19.105 --proxy-read-only-backend-addresses=192.168.19.106 --proxy-lua-script=/opt/mysql-proxy/scripts/rw-splitting.lua 回车:启动成功。
链接成功;
测试读写分离:
1:停止主从复制。 stop slave; 关闭从
从代理插入一条数据。insert into testtable values(3,"test02");
查询:
测试有数据。
查询从是否有数据
无有。