码迷,mamicode.com
首页 > 数据库 > 详细

mysql主从同步

时间:2015-05-31 18:44:15      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:mysql主从同步

一.mysql主从同步
方案:一主一从
   一主多从
   主从(主)从


  master                        slave
172.30.13.8  数据库服务           172.30.13.191   数据库服务             
slave角色的数据库服务器上一定要有主数据库服务器上的库、表  表结构一致
(从数据库服务器一定要有主数据库服务器的库和表)
 
   

1.配置master数据库服务器
1.1 开启binlog 日志(必须启用)
1.2 授权用户可以从  slave 数据库服务器连接自己 有拷贝数据的权限
mysql  -uroot -p999
grant replication slave on *.*  to  plj@"172.30.13.191" identified by "321";
show master  status; //查询配置slave时所需的log相关信息

1.3 指定自己server_id值   (范围:0-255)
[root@mail ~]# cat /etc/my.cnf
[mysqld]
log-bin=plj
server_id=8
[root@mail ~]#  service  mysql  restart



配置slave数据库服务器
1  指定自己server_id值
2  开启binlog 日志(可选项)
[root@svr5 Desktop]# cat /etc/my.cnf
[mysqld]
log-bin
server_id=191
[root@svr5 Desktop]# service  mysql  restart
            show master status;   //查看当前使用的binlog日志信息

3  指定自己做谁的从数据库服务器
mysql  -uroot   -p123
mysql> change master to  
    -> master_host="172.30.13.8",
    -> master_user="plj",
    -> master_password="321",
    -> master_log_file="plj.000001",
    -> master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.08 sec)

mysql> mysql> show slave status\G;
            Slave_IO_Running: No
            Slave_SQL_Running: No
mysql> start slave;
mysql> mysql> show slave status\G;
            Slave_IO_Running: YES
            Slave_SQL_Running: YES



二、主从同步的工作原理
master.info 记录连接主数据库服务器的信息
主机名-relay-bin.000001  中继日志sql语句
主机名-relay-bin.index  记录已有的中继日志文件名
relay-log.info   记录使用的日志文件信息
Slave_IO_Running: YES  负责把主数据库服务器binlog 日志里的sql语句,复制到自己本机的relay-bin日志文件里
Slave_SQL_Running: YES  负责执行本机的relay-bin日志,文件里的sql语句


测试:从数据库服务器能否自动同步主数据库服务器上数据。
mysql  -h172.30.13.8   -u用户名   -p密码
注:change master to ...即可以指定主服务器,也可以用来修改已经指定好的服务器信息

三、故障排除
1.Slave_IO_Running: NO
物理设备未连上
防火墙
selinux
授权信息有误

2.Slave_SQL_Running: NO
主从库和表结构不一致
主必须启用bin-log日志


四:指定同步库和表
1.授权同步用户时必须是*.*
2.在主数据库端设置允许从数据库服务器备份自己哪些库数据;

vim /etc/my.cnf
binlog-do-db=name  //只让从数据器备份自己的哪个库
binlog-ignore-db=name  //不让从数据器备份自己的哪个库
注:上面两个选项不可以同时使用


或,在从数据库服务器端设置自己备份主数据库哪些数据;
vim /etc/my.cnf
replicate-do-db=mysql  //指定只备份主数据库服务器上的哪个库
replicate-ignore-db=mysql //只不备份主数据库服务器上的哪个库






二、样例1:主 >  从(主) > 从
1.两台主服务器先设置授权(否则开启日志功能后,所设置的内容将同步到从服务器,造成安全隐患)
grant replication slave on *.*  to  user1@"172.30.13.191" identified by "321";
grant replication slave on *.*  to  user2@"172.30.13.192" identified by "321";

show master  status;(查询正在使用的日志文件和i点)

2.两台主服务器开启日志(bin-log)和设置id(server_id=)
3.从(主)服务器在my.cnf中添加log-slave-updates语句,此项添加后,将会将同步的slave日志内容同步到本地日志内,否则将无法进行主从从实验
4.从服务器配置详见上面主从同步;




本文出自 “刘福” 博客,请务必保留此出处http://liufu1103.blog.51cto.com/9120722/1656835

mysql主从同步

标签:mysql主从同步

原文地址:http://liufu1103.blog.51cto.com/9120722/1656835

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!