mysql 主从配置

这篇具有很好参考价值的文章主要介绍了mysql 主从配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、mysql主从同步定义

主从同步使得数据可以从一个数据库服,务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。

使用主从同步的好处:
1.通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的性能。
2.提高数据安全-因为数据已复制到从服务器,从服务器可以终止复制进程,所以,可以在从服务器上备份而不破坏主服务器相应数据
3.在主服务器上生成实时数据,而在从服务器上分析这些数据,从而提高主服务器的性能

1-2、mysql主从复制原理

master服务器将数据的改变记录二进制binlog日志,当master上的数据发生改变时,则将其改变写入二进制日志中;slave服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,

如果发生改变,则开始一个I/O Thread请求master二进制事件,同时主节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至从节点本地的中继日志中,从节点将启动SQL线程从

中读取二进制日志,在本地重放,使得其数据和主节点的保持一致,最后I/O Thread和SQL Thread将进入睡眠状态,等待下一次被唤醒。

    注意以下几点:
一、master将操作语句记录到binlog日志中,然后授予slave远程连接的权限(master一定要开启binlog二进制日志功能;通常为了数据安全考虑,slave也开启binlog功能)。
二、slave开启两个线程:IO线程和SQL线程。其中:IO线程负责读取master的binlog内容到中继日志relay log里;SQL线程负责从relay log日志里读出binlog内容,并更新到slave的数据库里,这样就能保证slave数据和 master数据保持一致了。
三、Mysql复制至少需要两个Mysql的服务,当然Mysql服务可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。
四、Mysql复制最好确保master和slave服务器上的Mysql版本相同(如果不能满足版本一致,那么要保证master主节点的版本低于slave从节点的版本)
五、master和slave两节点间时间需同步

mysql 主从配置

2、配置主从同步准备工作

masterIP:192.168.197.142
slaveIP:192.168.197.131

一、在主服务器上,必须开启二进制日志机制和配置一个独立的ID(不能重复)
二、在从服务器上,通用需要配置一个唯一的ID(不能重复),创建一个用来专门复制主服务器数据的mysql账号及秘密。
三、如果在同步之前,数据库中已经有数据,就需要使用mysqldump导出master数据库数据,然后在导入到slaave数据库中,使主备服务器数据同步,以防主从同步失败!
四、配置从服务器要连接的主服务器的IP地址和登陆授权,二进制日志文件名.

3、配置master主数据库

一、查看主服务器上的my.cnf文件中是否已经在[mysqld]模块下配置了log-bin和server-id,如没有这执行下面这个命令。

[root@master ~]#  echo -e "[mysqld]\nserver-id=100\nlog-bin=mysql-bin" >> etc/mysql/my.cnf

查看配置文件my.cnf是否添加成功

[root@master ~]# cat /etc/mysql/my.cnf 
[mysqld]
server-id=100         #同一局域网内注意要唯一
log-bin=mysql-bin     #开启二进制日志功能

二、因为上面更修改了my.com文件所已要刷新mysql

[root@master ~]# systemctl restart mysql.service

三、在master节点上创建用户并授予用户slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。

[root@master ~]#  mysql -uroot -p123456     #登录数据库
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';  #创建一个用户为slave密码为root
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';   #设置slave用的的权限
mysql> flush privileges;   #刷新数据库

四、查看master节点的binlog日志文件

mysql> show master status;

mysql 主从配置
File和Position字段的值后面将会用到,在后面的操作完成之前,需要保证Master库不能做任何操作,否则将会引起状态变化,File和Position字段的值也会变化。

五、导出master主数据库里的数据(如果数据库里没有数据,可以忽略这一步)

[root@master ~]# mysqldump -u用户 -p秘密 数据库名 > 导出的文件名.sql

4、配置slave备数据库

一、查看修改/etc/mysql/my.cnf文件
查看slave备服务器上的my.cnf文件中是否已经在[mysqld]模块下配置了server-id、log-bin、relay_log,如没有这执行下面这个命令。

[root@slave ~]# echo -e "[mysqld]\nserver-id=101\nlog-bin=mysql-slave-bin\nrelay_log=edu-mysql-relay-bin" >> /etc/mysql/my.cnf
[root@slave ~]# cat /etc/mysql/my.cnf   #查看my.cnf内容
[mysqld]
server-id=101     #唯一值
log-bin=mysql-slave-bin    #开启二进制日志功能,以备Slave作为其它Slave的Master时使用
relay_log=edu-mysql-relay-bin   #开启中继日志

二、重启slave备服务器数据库

[root@slave ~]# systemctl restart mysql.service

三、如果主服务器有数据,则在备服务器上面导入数据(如果数据库里没有数据,可以忽略这一步)

[root@salve ~]# mysql -u用户 -p秘密 数据库名 < 要恢复的.sql

三、配置slave备服务器数据库连接master主服务器数据库

mysql> change master to master_host='192.168.197.142', master_user='slave', master_password='slave', master_port=3306, master_log_file='mysql-bin.000002', master_log_pos= 0;
master_host       # master主服务器地址
master_port       #容器的端口号,指的是容器内部运行mysql的端口号
master_user       #是在master中创建主从的用户名
master_password   #是在master中创建主从的秘密
master_log_file   #是上一步中从master中查出File字段的值
master_log_pos    #是复制起始点,如果为0,为从头复制

四、启动slave备服务器的slave

mysql> start slave;

五、查看slave的主从状态

mysql> show slave status\G;

mysql 主从配置
查看IO线程和SQL线程为YES则配置成功

5、重置主从配置

在master主服务器上执行

mysql > reste master
作用包括:
删除binlog索引文件中列出的所有binlog文件
清空binlog索引文件
创建一个新的binlog文件
清空系统变量gtid_purged和gtid_executed
在MySQL 5.7.5 及后续版本中, RESET MASTER还会会清空 mysql.gtid_executed 数据表。

在slave备服务器上执行文章来源地址https://www.toymoban.com/news/detail-455693.html

mysql > reset slave
作用包括:
清除slave 复制时的master binlog的位置
清空master info, relay log info
删除所有的relay log文件,并创建一个新的relay log文件。
重置复制延迟(CHANGE MASTER TO 的 MASTER_DELAY参数指定的)为0。

到了这里,关于mysql 主从配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【mysql】MySQL 主从同步延迟排查

    错误日志: ○ 寻找与同步问题相关的错误消息或警告。 复制状态: ○ SHOW SLAVE STATUS 并行复制设置: ○ 确保 slave_parallel_workers 的值合适。如果值过高,可能会导致资源竞争,而值过低可能会导致性能下降。 长事务: ○ 查询长时间运行的事务,可能会影响到复制的正常进行

    2024年02月07日
    浏览(34)
  • mysql 主从同步

    角色 ip master 192.168.233.100 slave1 192.168.233.101 slave2 192.168.233.102 禁用 selinux 跟 firewal l情况下: 新路径已修改为 /var/lib/mysql/new_bin master 节点信息 在 master 节点新建同步账号 在 master 与 slave 节点创建数据库 在 slave1 节点配置 发现错误:Last_IO_Error: Fatal error: The slave I/O thread stops be

    2024年02月07日
    浏览(25)
  • mysql 主从同步案例集合

      relay log 损坏了,导致从库的 SQL 线程解析 relay log 时出现异常。从库恢复方式是通过手动设置当时出错的 GTID 的下一个值,让从库不从主库同步这个 GTID,最后从库就能正常同步这个 GTID 之后的 binlog 了,后续 SQL 线程也能正常解析 relay log 了。 你好,我是悟空。 本文主要内

    2023年04月14日
    浏览(29)
  • Mysql架构篇--Mysql 主从同步方案

    本文对mysql的传统主从复制,半同步复制和组复制进行介绍。 Master 数据库只要发生变化,立马记录到Binlog 日志文件中,Slave数据库启动一个I/0 thread连接Master数据库,请求Master变化的二进制日志。Save I/0获取到的二进制日志,保存到自己的Relay log 日志文件中。Slave 有一个 SQL

    2024年02月07日
    浏览(28)
  • MySQL主从同步(不开GTID)

    一、背景 了解并熟悉MySQL的主从同步的搭建过程,并解决搭建过程中所碰到的问题。 二、目标 了解并熟悉MySQL的主从同步的搭建过程,并解决搭建过程中所碰到的问题。 IP地址 MySQL版本 主从关系 192.168.3.244 5.6.51 Master 192.168.3.245 5.7.41 Slaver 192.168.3.246 8.0.33 Slaver 三、过程 1、安

    2024年02月06日
    浏览(42)
  • MySQL数据库实现主从同步

    安装MySQL数据库8.0.32 今天来学习数据库主从同步的原理及过程,数据库主要是用来存储WEB数据,在企业当中是极为重要的,下面一起来看下。 MySQL主从复制在中小企业,大型企业中广泛使用,MySQL主从复制的目的是实现数据库冗余备份,将master数据库数据定时同步到slave数据库

    2024年02月02日
    浏览(36)
  • 使用本地mysql+linux实现mysql主从同步

    1.1修改该linux配置文件 1.2重启linux的mysql 1.3使用账户密码登录linux中的mysql,查看是否配置成功 若显示有FIile和Posttion就表示注linux的主节点配置成功 注意事项: 本地的这个数据库的权限必须是管理员权限,否则会出现数据库不能进行访问,配置就会失败 2.1修改本地mysql中的 my.ini 文

    2024年02月09日
    浏览(29)
  • Mysql架构篇--Mysql(M-S) 主从同步

    MySQL主从同步(MySQL Replication)是MySQL服务器的一个常用特性,它能够将MySQL服务器数据自动同步到其他MySQL服务器上,从而实现数据备份和负载均衡的功能。在实际应用中,MySQL主从同步可以用于实现高可用、灾备转移、读写分离等。 首先需要有大于等于2个的mysql 实例,一个

    2024年02月09日
    浏览(36)
  • MySQL 主从复制[异步 同步 半同步复制] 读写分离 优化 (非常重要)

    1、什么是读写分离? 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 2、为什么要读写分离呢? 因为数据库的“写”(写10000条数据

    2024年02月11日
    浏览(39)
  • Mysql5.7.36主从同步实操

    主库创建同步账户 停止主库 配置主库需要的备份参数 打开my.ini文件,配置以下参数 启动主库 导出主库中需要备份的数据库数据到从库中 停止从库 配置从库my.ini参数 启动从库 查询主库的master状态 主库mysql命令执行:show master status; 记录当前文件号和position信息 从库执行 停

    2024年02月11日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包