MySQL主从搭建

释放双眼,带上耳机,听听看~!

1、环境

mysql5.6.37 + centos7.0 64位

2、一主多从

主从复制原理

     Mysql主从复制的实现原理如下图所示:

  MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。

1.  master节点上的操作

1.1 linux配置my.cnf,

注意:修改要放到mysqld下面

1.1 开启二进制日志

修改/usr/my.cnf  文件,加入如下配置


1
2
1vi  /usr/my.cnf
2

MySQL主从搭建


1
2
3
4
5
6
1log-bin=mysql-bin  //将mysql二进制日志取名为mysql-bin
2
3binlog-ignore-db  //表示不同步什么数据库
4
5binlog-do-db        //表示只同步什么数据库,除此之外,其它不同步(如果这个参数配置了,上面那个参数可以不配置)
6

1.2 配置唯一的server-id,一般使用


1
2
1server-id=247
2

MySQL主从搭建
重启mysql

#

1.2 获得master二进制日志文件名及位置(Position)

1、查看serverid是否正确

show variables like '%server_id%';

MySQL主从搭建

 

2、查看位置

show master status;MySQL主从搭建

执行完之后记录下这两值(File,Position),然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变

1.3 MySql允许用户远程访问


1
2
3
4
5
1//允许所有用户访问所有权限。
2GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin123' WITH GRANT OPTION;
3FLUSH PRIVILEGES;
4
5

2.  slave节点上的配置

 注意事项:如果主库里面有初始化数据,那么在主从复制前需要把数据先导入到从库以保证初始一致性

2.1 配置唯一的server-id


1
2
1server-id=247
2

MySQL主从搭建

2.2 配置需要读取的库


1
2
1binlog_do_db=cloud   ###同步数据库
2

MySQL主从搭建

2.3 查看master状态

MySQL主从搭建

2.4根据master状态设置slave

登录mysql,先关闭slave,

关闭slave(如果你以前配置过主从的话,一定要先关闭,然后重设)


1
2
3
1stop slave;
2reset slave;
3

修改slave配置


1
2
3
1change master to master_host='10.10.26.163',master_user='root',master_password='admin123',
2         master_log_file='mysql-bin.000002',master_log_pos=75721192;
3

2.5 启用slave服务


1
2
1start slave;
2

查看是否配置成功:


1
2
1show slave status;
2

 

给TA打赏
共{{data.count}}人
人已打赏
安全运维

设计模式之桥接模式

2021-12-12 17:36:11

安全运维

OpenSSH-8.8p1离线升级修复安全漏洞

2022-1-9 9:47:55

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索