Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql双机热备

作者:我在坚强也需要有人疼   发布日期:2025-02-24   浏览:114

-- MySQL 双机热备配置示例

-- 1. 主服务器 (Master) 配置
-- 编辑 MySQL 配置文件 my.cnf,在 [mysqld] 段落中添加以下内容:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=mixed
expire_logs_days=7

-- 2. 从服务器 (Slave) 配置
-- 编辑 MySQL 配置文件 my.cnf,在 [mysqld] 段落中添加以下内容:
[mysqld]
server-id=2
relay-log=mysql-relay-bin
log-bin=mysql-bin
read-only=1

-- 3. 在主服务器上创建用于复制的用户
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

-- 4. 在主服务器上锁定表并获取二进制日志位置
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

-- 记录下 File 和 Position 的值,例如:
-- File: mysql-bin.000001
-- Position: 12345

-- 5. 在从服务器上配置主服务器信息
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=12345;

-- 6. 启动从服务器的复制线程
START SLAVE;

-- 7. 检查从服务器的状态
SHOW SLAVE STATUS\G;

-- 注意:在实际生产环境中,请确保防火墙和网络配置允许主从服务器之间的通信,并且备份和恢复机制已经就绪。

解释说明:

  1. 主服务器配置:设置 server-id 为唯一的标识符,启用二进制日志记录 (log-bin) 并设置日志格式为 mixedexpire_logs_days 设置日志过期天数。

  2. 从服务器配置:设置 server-id 为不同的唯一标识符,启用中继日志 (relay-log) 和二进制日志记录。read-only=1 确保从服务器只读。

  3. 创建复制用户:在主服务器上创建一个用于复制的用户,并授予其 REPLICATION SLAVE 权限。

  4. 锁定表并获取二进制日志位置:锁定所有表以防止数据更改,然后查看当前的二进制日志文件名和位置。

  5. 配置从服务器:使用 CHANGE MASTER TO 命令配置从服务器连接到主服务器,并指定二进制日志文件和位置。

  6. 启动复制线程:在从服务器上启动复制线程。

  7. 检查状态:使用 SHOW SLAVE STATUS 查看从服务器的复制状态,确保一切正常运行。

如果有任何问题或需要进一步的帮助,请随时联系我!

上一篇:mysql 查询数据库

下一篇:mysql判断为空或者空字符方法

大家都在看

mysqlavg函数保留小数

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

python mysql update

mysql 查看权限

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站