MySQL主从配置以及未完成的读写分离

按照这个教程做的,前面主从分离都没有什么大问题。

后面本来想要在数据库层面完成的读写分离被开发的PHP解决了,就没有配了。

配置环境:
主服务器:192.168.1.156
从服务器:192.168.1.153
1.首先安装mysql
apt-get install mysql-server
2.修改主服务器的配置文件/etc/mysql/my.cnf
vim /etc/mysql/my.cnf
把下面2行注释去掉
server-id = 1
log_bin                 = /var/log/mysql/mysql-bin.log
bind-address           = 192.168.1.156
service mysql start
mysql -uroot -p #登录管理mysql
GRANT REPLICATION SLAVE ON *.* to 'root'@'192.168.1.153' identified by 'ylmf';
#授权给从数据库服务器192.168.1.153
GRANT ALL ON *.* TO 'root'@'192.168.1.210' IDENTIFIED BY 'ylmf';
flush privileges;
#允许远程连接MYSQL

show master status; #查询主数据库状态
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      106 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
记录下 FILE 及 Position 的值,在后面进行从服务器操作的时候需要用到。

3.配置从服务器
修改从服务器的配置文件/etc/mysql/my.cnf
vim /etc/mysql/my.cnf
将 server-id = 1修改为 server-id = 10,并确保这个ID没有被别的MySQL服务所使用。
bind-address           = 192.168.1.153
service mysql start
mysql -uroot -p
change master to
master_host='192.168.1.156',
master_user='rep1',
master_password='ylmf',
master_log_file='mysql-bin.000005',
master_log_pos=242;
正确执行后启动Slave同步进程
start slave; #主从同步检查
show slave status\G
其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。
GRANT ALL ON *.* TO 'root'@'192.168.1.210' IDENTIFIED BY 'ylmf';
flush privileges;
#允许远程连接MYSQL
如果主服务器已经存在应用数据,则在进行主从复制时,需要做以下处理:
(1)主数据库进行锁表操作,不让数据再进行写入动作
FLUSH TABLES WITH READ LOCK;
(2)查看主数据库状态
show master status;
(3)记录下 FILE 及 Position 的值。
(4)取消主数据库锁定
mysql> UNLOCK TABLES;
4.验证主从复制效果
在主服务器上创建数据库first_db
create database first_db;
在主服务器上创建表first_tb
create table first_tb(id int(3),name char(10));
在主服务器上的表first_tb中插入记录
insert into first_tb values (001,'myself');
在从服务器上查看,所有记录已复制过来
由此,整个MySQL主从复制的过程就完成了.
##############################################
5.MYSQL读写分离
主服务器:192.168.1.156
从服务器:192.168.1.153
MySQL-Proxy调度服务器:192.168.1.210
以下操作,均是在192.168.1.210即MySQL-Proxy调度服务器上进行的
MySQL-Proxy的读写分离主要是通过rw-splitting.lua脚本实现的,因此需要安装lua
apt-get install lua5.1

6.安装配置MySQL-Proxy
apt-get install  mysql-proxy mysql-client
修改/etc/mysql/my.cnf
bind-address           = 192.168.1.210
7.配置并使用rw-splitting.lua读写分离脚本
脚本目录是 /usr/share/mysql-proxy
修改读写分离脚本rw-splitting.lua
修改默认连接,进行快速测试,不修改的话要达到连接数为4时才启用读写分离
vim /usr/share/mysql-proxy/rw-splitting.lua
-- connection pool
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit = {
min_idle_connections = 1, //默认为4
max_idle_connections = 1, //默认为8
is_debug = false
}
end
8.修改完成后,启动mysql-proxy(服务管理脚本需要自己修改,哪个服务器读,那个服务器写,是在脚本里定义的)

wp@MySQL:~$ sudo mysql-proxy --proxy-read-only-backend-addresses=192.168.1.201:3306 --proxy-backend-addresses=192.168.1.203:3306 --proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua --admin-username=root --admin-password=colourlife!@#

2013-04-18 11:27:16: (critical) mysql-proxy-cli.c:478: Invalid byte sequence in conversion input

--admin-address=192.168.1:4041 --proxy-address=10.18.84.160:3308

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值