mariadb主从配置/互为主从

有数据库瓶颈时,当前处理方案无外乎 主从,集群。增加cache(memcached). 

如:手机之家新系统介绍及架构分享(http://www.slideshare.net/Fenng/ss-1218991?from=ss_embed) 

就是在cache层做优化 

又拍网架构(http://www.bopor.com/?p=652) 

是以增加数据库,分表分库的方法解决。 

Sina增加了mq(消息队列)来分发数据。 

还有风站用了key-value的数据库。其实这可以理解成一个持久化的缓存。 

主从配置

原理图

1.创建可以外部链接的用户

mysql>create user repl; //创建新用户
//repl用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.0.%,这个配置是指明repl用户所在服务器,这里%是通配符,表示192.168.0.0-192.168.0.255的Server都可以以repl用户登陆主服务器。当然你也可以指定固定Ip。
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.%' IDENTIFIED BY 'mysql';

 修改用户密码:

  

mysql>use mysql
mysql>UPDATE user SET password=PASSWORD('123456') WHERE user='root';
mysql>FLUSH PRIVILEGES;

 

2.配置/etc/my.cnf

 在[mysqld]下面增加下面几行代码

#主配置
server-id=128#给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
log-bin=mysql-bin#主机必须打开 从库根据bin的二进制文件读取主库操作记录
binlog-do-db=mytest#备份的数据库名,如果要备份多个数据库 重复设置这个选项即可
log-slave-updates#更新记录到二进制文件


#从配置
server-id=2
read-only=on  
relay-log=relay-bin  
replicate-do-db=mytest  
log-slave-updates

3.查看日志

mysql> SHOW MASTER STATUS;

重启mysql 

4.配置从库/etc/my.cnf

server-id=2
read-only=on  
relay-log=relay-bin  
replicate-do-db=mytest  
log-slave-updates

server-id=129
log-bin=129-master-bin
binlog-do-db=mytest
log-slave-updates

5.连接master

change master to master_host='192.168.60.128', #Master 服务器Ip
master_port=3306,
master_user='repl',
master_password='mysql', 
master_log_file='master-bin.000001',#Master服务器产生的日志 SHOW MASTER STATUS
master_log_pos=0,
master-connect-retry=60;#如果从服务器发现主服务器断掉,重新连接

启动slave

start slave;

查看slave状态

show slave status

查看Slave_IO_Running和Slave_SQL_Running,如果都是Yes说明搭建成功,就可以建表插入数据测试了。

 

注:

 

锁主库表(可省略,主要防止在写从表配置时,主表被改动)
 mysql> FLUSH TABLES WITH READ LOCK; #同步时锁
    mysql>UNLOCK TABLES;#解锁

 

posted on 2016-12-09 17:45  小乔流水人家  阅读(510)  评论(0)    收藏  举报

导航