标签: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主从同步
原文地址:http://liufu1103.blog.51cto.com/9120722/1656835