配置MySQL数据库的主从

1:配置MySQL数据库主从的作用:提高系统的可用性和性能、实现数据备份和灾难恢复、支持读写分离和负载均衡。

2:配置的前提

在配置MySQL数据库主从之前我们需要确保从库和主库的数据库里包含的数据是一样的;

主库(Master)和从库(Slave)的 MySQL 版本应尽量一致,或者从库的版本高于主库。推荐使用 MySQL 5.6 及以上版本,因为早期版本的复制功能可能不够完善。

主库和从库之间需要能够互相通信。确保防火墙允许 MySQL 的端口(默认是 3306)

 3:在主数据库上放通3306端口和关闭SELinux功能
firewall-cmd   --zone=public   --add-port=3306/tcp --permanent #放通3306端口
firewall-cmd       --reload # 重新加载防火墙以应用更改
setenforce    0  #关闭SELinux功能这个只是临时关闭
4:在从数据库上放通3306端口和关闭SELinux功能
firewall-cmd   --zone=public   --add-port=3306/tcp --permanent #放通3306端口
firewall-cmd       --reload # 重新加载防火墙以应用更改
setenforce    0  #关闭SELinux功能这个只是临时关闭

5: 在主库上修改配置文件

在/etc/my.cnf文件中的[mysql]中添加

server-id=1 #每个 MySQL 实例(无论是主库还是从库)都需要一个唯一的 server-id用于标识MySQL服务器,server-id都是唯一的主库通常为1,从库可以为2、3等。

log-bin=mysql-bin # 启用二进制日志(Binary Log),这是主从复制的核心,二进制日志记录了所有对数据库的写操作(如insert、update、delete等)从库就是通过读取这些日志来同步数据的。

binlog-format=ROW #设置二进制日志的格式。MySQL支持三种格式。

STATEMENT: 记入SQL语句

ROW:记入每一行数据的变更。

MIXED:混合模式,默认使用STATEMENT,某些情况下自动切换到ROW

ROW格式是最推荐的,因为它可以避免某些 SQL 语句在主从库上执行结果不一致的问题(如使用 UUID() 或 NOW() 的函数)。

保存配置并重启主库

6:登录主数据库并创建一个用于主从备份的账户

CREATE USER '用户名' @'%' IDENTIFIED BY '密码 ;
GRANT REPLICATION SLAVE ON *.* TO '用户名' @'%' ;
FLUSH PRIVILEGES ; #刷新权限
7:查看主库的file和position
SHOW MASTER STATUS ;
8:从库的配置
在/etc/my.cnf文件中的[mysql]中添加
server -id= 2 #用于标识从库
保存配置并重启从库

9:登入从库,配置复制

CHANGE MASTER TO
MASTER_HOST= '192.168.66.128' , # 主数据库的 IP
MASTER_USER= 'back' , # 主数据库的复制账号
MASTER_PASSWORD= 'Back.2025' , # 主数据库的复制账号密码
MASTER_LOG_FILE= 'mysql-bin.000001' , # 主数据库 File 的值
MASTER_LOG_POS= 747 ; # 主数据库的Position 的值
START SLAVE; #启动复制
SHOW SLAVE STATUS\G  #查看

两个都yes了就可以了

可以去主库上创建一个库,可以在从库是查看到就可以了。

配置 MySQL 数据库主从同步的大体步骤如下: 1. 在主数据库上创建一个用于复制的用户,并授予其 REPLICATION SLAVE 权限。 2. 在从数据库配置主服务器的连接信息。 3. 在从数据库上启动复制进程。 下面是详细步骤: 1. 在主数据库上创建一个用于复制的用户,并授予其 REPLICATION SLAVE 权限。 在主数据库上创建一个用于复制的用户,例如: ``` CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; ``` 这将创建一个名为 `repl` 的用户,并将其密码设置为 `password`。然后,将 `REPLICATION SLAVE` 权限授予该用户,以便从服务器可以使用该用户进行连接和同步。 2. 在从数据库配置主服务器的连接信息。 在从数据库上打开 MySQL 配置文件 `my.cnf`,并添加以下内容: ``` [mysqld] server-id=2 log-bin=mysql-bin binlog-do-db=database_name # 需要同步的数据库名 relay-log=relay-log ``` 其中,`server-id` 指定了从服务器的唯一 ID,`log-bin` 指定了二进制日志文件的名称和位置,`binlog-do-db` 指定了需要同步的数据库名,`relay-log` 指定了中继日志文件的名称和位置。 在配置文件中添加完这些内容后,保存并关闭文件。 3. 在从数据库上启动复制进程。 在从数据库上启动 MySQL,并使用以下命令连接到主数据库: ``` CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', # 主数据库上的二进制日志文件名 MASTER_LOG_POS=106; # 主数据库上的二进制日志文件位置 ``` 其中,`MASTER_HOST` 指定了主数据库的 IP 地址或域名,`MASTER_USER` 和 `MASTER_PASSWORD` 指定了在主数据库上创建的用于复制的用户和密码,`MASTER_LOG_FILE` 和 `MASTER_LOG_POS` 指定了主数据库上的二进制日志文件名和位置。 然后,启动从服务器的复制进程: ``` START SLAVE; ``` 至此,MySQL 数据库主从同步已经配置完成。你可以通过 `SHOW SLAVE STATUS\G` 命令来查看从服务器的复制状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值