【mysql 集群】一、主从复制

mysql 集群

概念:https://blog.csdn.net/qq_33936481/article/details/73330318

  • 配置SSH登录无密码验证(使用key登录,工作中常用,最好不要禁掉密码登录,如果禁了,可能会有问题)
三台机器上都要互相配置:
192.168.2.131 [root ~]$ ssh-keygen -t rsa
192.168.2.131 [root ~]$ ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.2.128
192.168.2.131 [root ~]$ ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.2.129
192.168.2.131 [root ~]$ ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.2.130

mysql5.7 安装

https://www.cnblogs.com/freely/p/8087885.html

MySQL5.7初始密码修改

https://www.cnblogs.com/yoyotl/p/6387207.html

  • mysql 授权访问
set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
set global validate_password_special_char_count=0;
set global validate_password_length=3;

  • my.cnf 中最后一行添加
skip-grant-tables
  • 重启mysql

输入:mysql -u root -p

密码为空,直接回车,接着输入以下命令:

    use mysql;

  update user set authentication_string=password("root") where user="root";

  flush privileges;
  • 然后将 my.ini 中的 skip-grant-tables 删除

mysql主从同步环境

https://www.cnblogs.com/gomysql/p/3675429.html

  • Mysql主从配置,实现读写分离

https://www.cnblogs.com/alvin_xp/p/4162249.html

创建复制用户:


master 中
    mysql> grant replication slave on *.* to 'user'@'192.168.2.%' identified by 'password'; 
Query OK, 0 rows affected (0.00 sec)

slave 中
mysql>change master to master_host='120.77.***.***',master_user='repl',master_password='***',master_port=3306,master_log_file='mysql-bin.000016',master_log_pos=1042,master_connect_retry=10;
Query OK, 0 rows affected (0.01 sec)

  • 基于GTID 的复制

change master to master_host=‘172.18.***.**’,master_user='’,master_password='’,master_port=3306, master_auto_position=936;

参考

mysql5.7 、centos 7.5


192.168.9.38    master 
192.168.9.81    slave 
192.168.9.98    slave 

master 配置中my.cnf 文件中的[mysqld]下添加

server-id=10
log-bin=mysql-bin
log-slave-updates=1
binlog-do-db=hokage  #需要同步的数据库,如果没有本行表示同步所有的数据库
binlog-ignore-db=mysql  #被忽略的数据


log-bin=/var/lib/mysql/mysql-bin

192.168.9.81 slave 配置中my.cnf 文件中的[mysqld]下添加

server-id=12
log-bin= mysql-bin
relay-log= mysql-relay-bin
read-only=1
log-slave-updates=1
replicate-do-db=hokage #需要同步的数据库,如果没有本行表示同步所有的数据库

log-bin=/var/lib/mysql/mysql-bin

192.168.9.98 slave 配置中my.cnf 文件中的[mysqld]下添加

server-id=13
log-bin= mysql-bin
relay-log= mysql-relay-bin
read-only=1
log-slave-updates=1
replicate-do-db=hokage #需要同步的数据库,如果没有本行表示同步所有的数据库

log-bin=/var/lib/mysql/mysql-bin

注意事项:

  • 修改my.cnf 中 server_id
  • 修改auto.cnf 中的uuid 保证每个db 中的不一样
mysql基于日志和gtid复制配置和切换

https://blog.csdn.net/aryoyo/article/details/80597947
https://blog.csdn.net/jslink_l/article/details/54574066

  • 传统复制模式切换为GTID, 主库从库都需执行以下命令:
set global gtid_mode='OFF_PERMISSIVE';
set global gtid_mode='ON_PERMISSIVE';
set global enforce_gtid_consistency=ON;
set global gtid_mode='ON';
my.cnf主从都要添加
gtid_mode=on
enforce_gtid_consistency=on
  • 查看 gtid 模式是否开启

show variables like ‘%gtid_mode%’;

MySQL半同步复制原理配置与介绍

https://blog.csdn.net/xlgen157387/article/details/69400410

https://www.2cto.com/database/201806/757856.html

  • 查看半同步复制模式是否启用

show variables like “rpl_semi_sync_%_enabled”;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL集群是指将多个MySQL服务器组成一个集群,通过共享数据和负载均衡来提高系统的可靠性、可用性和性能。主从复制MySQL集群中常用的一种技术,它通过将一个MySQL服务器作为主服务器,将其他MySQL服务器作为从服务器,实现数据的复制和同步。 主从复制的原理是,将主服务器的数据变更记录在二进制日志中,从服务器通过读取主服务器的二进制日志来实现数据的复制和同步。从服务器会定时连接主服务器,获取最新的二进制日志并将其应用到自己的数据库中,从而实现数据的同步。 主从复制可以提高系统的可用性和性能,因为从服务器可以承担读操作的负载,从而减轻主服务器的压力。同时,主从复制也可以实现数据的备份和恢复,以及数据的分析和处理等功能。 在实现主从复制时,需要注意以下几点: 1. 主从服务器的MySQL版本和配置要一致。 2. 主从服务器之间需要建立可靠的网络连接,以保证数据的同步。 3. 在主服务器上开启二进制日志记录并设置相应的参数。 4. 在从服务器上设置主服务器的信息,并开启从服务器的复制功能。 5. 注意主从服务器之间的时间同步,避免时间不同步导致数据的错误同步。 总之,主从复制MySQL集群中一个重要的技术,可以提高系统的可靠性和性能,但也需要结合具体的业务场景和运维需求进行合理的规划和实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值