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;#解锁
浙公网安备 33010602011771号