当前位置:   article > 正文

linux 下配置mysql 主从_在linux环境配置mysql主从

在linux环境配置mysql主从

从来没有对学习和使用过的技术进行总结的习惯,一直白嫖别人的经验,是时候给自己做些笔记啥的了,废话不多说

linux配置主从的原理

在这里插入图片描述

mysql主从配置的流程大体如图:

1)master会将变动记录到二进制日志里面;

2)master有一个I/O线程将二进制日志发送到slave;

  1. slave有一个I/O线程把master发送的二进制写入到relay日志里面;

4)slave有一个SQL线程,按照relay日志处理slave的数据;

总结需要实现的操作

按照原理,我们开启mysql主从复制,我们大体需要做以下操作:

1)开启master的二进制日志

2)开启slave的二进制日志

3)将slave指向master

4)开始复制

具体实现

两台服务器(分别执行安装mysql)
master 和slave 节点安装mysql(最好同一版本);
命令 如下:

sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

yum install mysql-server -y(安装完成)

service mysqld restart(重新启动)

mysql -uroot (登录)

mysql> set password for root@localhost = password(‘Root@123456’);(设置密码)

master服务器

开启master二进制日志

1)编辑mysql的配置文件,使用命令:

vim /etc/my.cnf

2)添加二进制日志配置,开启二进制(master-bin只是日志文件名称,可以自己指定)

log-bin=master-bin
server-id=1 #唯一标识符,一定要指定

3)配置slave账号授权

mysql>GRANT REPLICATION SLAVE ON . TO ‘用户名’@‘slave数据库的IP地址’ IDENTIFIED BY ‘密码’;
如 (mysql>GRANT REPLICATION SLAVE ON . TO ‘slave1’@’%’ IDENTIFIED BY ‘123456’;
)
这行命令的意思是:允许在某个IP地址某个用户某个密码对当前数据库的所有库和所有表进行复制操作

4)刷新或这重启mysql

mysql>flush privileges; (刷新)

service mysql restart;

5)查看以下master的状态

查看以下master的日志文件名字,以及文件所在的位置,使用命令:

show master status;

显示如下信息
±------------------±---------±-------------±-----------------±------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

±------------------±---------±-------------±-----------------±------------------+

| master-bin.000001 | 1516 | | | |

±------------------±---------±-------------±-----------------±------------------+
(需要复制 以上log 地址)
master 配置完毕

================

slave服务器

1)编辑mysql的配置文件,使用命令:

vim /etc/my.cnf

2)添加二进制日志配置,开启二进制(master-bin只是日志文件名称,可以自己指定)

log-bin=master-bin
server-id=2 #唯一标识符,一定要指定

  1. 登录mysql 配置关联
mysql>CHANGE MASTER TO
>MASTER_HOST='master所在服务器的IP',
>MASTER_USER='master授权的账号',
>MASTER_PASSWORD='master授权的密码',
>MASTER_LOG_FILE='master的日志文件名', (master-bin.000001)
>MASTER_LOG_POS=master的日志所在位置;  (1516不用引号)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4)开始主从复制

mysql>start slave;

5)查看运行状态

show slave status\G;

显示

*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master的IP地址
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-bin.000001
Read_Master_Log_Pos: 1516
Relay_Log_File: slave-bin.000004
Relay_Log_Pos: 1117
Relay_Master_Log_File: master-bin.000001
Slave_IO_Running: Yes (connction 失败, YES 表示slave的日志读取线程开启)
Slave_SQL_Running: Yes( YES 表示SQL执行线程开启)

总结

由于主从复制是基于I/O的日志,所以会存在一定延时,如果对数据一致性要求非常高的话,简单的主从复制在实际环境中会存在问题

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/932139
推荐阅读
相关标签
  

闽ICP备14008679号