MySql主从复制,读写分离总结报告
一:编写目的
1本报告为部署Mysql主从复制,读写分离操作,以及设置部分的参数,和使用
二:Mysql主从复制
1部署过程
一:配置mysql配置文件参数
环境:centos6.5
主数据库服务器: Master:172.15.17.225 MySQL已经安装
从数据库服务器: Slave: 172.15.17.227 MySQL已经安装
mysql-proxy调度机: 172.15.17.222
- Master配置参数
在 Master:172.15.17.225端
打开配置文件 vim /etc/my.cnf 增加下列参数
log-bin=mysql-bin
#PS:server-id参数唯一 ,最好使用IP地址的最后一段
server-id=225
auto-increment-offset=1
auto-increment-increment=2
slave-skip-errors=all
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
如图所示
Master:172.15.17.225端登陆mysql
mysql -uroot -p****
如图所示
配置远程登陆用户
>GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
如图所示
查询master状态
show master status
- Slave配置参数
在Slave: 172.15.17.227 打开配置文件 vim /etc/my.cnf 增加下列参数
symbolic-links=0
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
log-bin=mysql-bin
#PS:server-id参数唯一 ,最好使用IP地址的最后一段
server-id=227
auto-increment-increment = 2
auto-increment-offset = 3
slave-skip-errors = all
配置用户GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
配置执行同步SQL语句
查询slave状态SHOW SLAVE STATUS\G;
PS:当slave_io_running 和slave_sql_running都为yes则表示成功。
- 测试主从同步
在master创建表并且插入数据
在slave上直接查询如下图所示
发现数据同步则表示数据同步成功主从复制完成
- 配置mysql读写分离
在mysql-proxy调度机: 172.15.17.222
下载MySQL-Proxy
htttp://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/
解压tar xzvf mysql-proxy-0.8.1-linux-rhel5-x86-32bit.tar.gz
mv mysql-proxy-0.8.1-linux-rhel5-x86-32bit /usr/local/mysql-proxy
mkdir /usr/local/mysql-proxy/run
mkdir /usr/local/mysql-proxy/logs
mkdir /usr/local/mysql-proxy/scripts
编辑配置文件vim /etc/mysql-proxy.cnf
增加如下内容
[mysql-proxy]
user=root
admin-username=root
admin-password=1
proxy-address=172.15.17.222:4040
proxy-read-only-backend-addresses=172.15.17.227
proxy-backend-addresses=172.15.17.225
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua
og-file=/usr/local/mysql-proxy/logs/mysql-proxy.log
log-level=info
daemon=true
keepalive=true
如图所示:
~ 编辑脚本vim /usr/local/mysql-proxy/lua/rw-splitting.lua
修改40 41行参数
min_idle_connections = 1,
max_idle_connections = 1,
如下图所示:
- 测试读写分离
在 Slave: 172.15.17.227关闭主从复制stop slave;
在一台机器用登陆
mysql -uroot -p1 -P4040 -h172.15.17.222
在表中插入一条数据并且查询发现插入成功但是未能查询到该数据
在slave172.15.17.227中开启slave
重新在查询发现数据出现,说明读写分离成功。