mysql主从同步
2015-05-31 13:56
567 查看
一.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.从服务器配置详见上面主从同步;
方案:一主一从
一主多从
主从(主)从
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.从服务器配置详见上面主从同步;
相关文章推荐
- mysql 主从同步
- 线上一例主从不同步解决方法
- Mysql主从同步及其读写分离的实现过程
- MySQL主从同步
- Linux 配置mysql主从同步的iptables设置
- 基于半同步,ssl的mysql级联复制 推荐
- mysql主从同步配置
- MySql5.7.16主从同步
- Mysql主从同步(复制)
- Mysql主从配置
- mysql主从配置
- windows与centos-mysql主从同步
- MySQL生产库主从重新同步操作注意事项
- mysql通过binlog恢复数据的几种情况
- MySql - 主主或者主从同步且只同步指定表
- Mysql主从同步异常处理
- Ubuntu的mysql下xtrabackup热备案例①
- MySQL Replication(Master与Slave基本原理及配置)
- mysql 主从双向同步配置
- MySQL 数据库热备的操作