Mysql主从分离
配置主服务器(Master)
1、修改 MySQL 配置文件(my.cnf 或 my.ini)
[mysqld] log-bin=mysql-bin # 启用二进制日志 server-id=1 # 设置唯一的 server-id,通常 master 为 1 binlog-do-db=test # 指定要复制的数据库
2、重启 MySQL 服务
sudo systemctl restart mysql
3、创建复制账号
CREATE USER 'testuser'@'%' IDENTIFIED BY 'testpassword'; GRANT REPLICATION SLAVE ON *.* TO 'testuser'@'%'; FLUSH PRIVILEGES;
4、获取主服务器的二进制日志信息
执行以下命令,记下二进制日志文件和位置:
SHOW MASTER STATUS;
输出类似如下:
+---------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------------+----------+--------------+------------------+ | mysql-bin.000001 | 107 | test | | +---------------------+----------+--------------+------------------+
配置从服务器(Slave)
1、修改从服务器的 MySQL 配置文件
[mysqld] server-id = 2 # 从服务器的唯一 ID,通常为 2 relay_log = /var/log/mysql/mysql-relay-bin.log # 启用中继日志 log_bin = /var/log/mysql/mysql-bin.log # 启用 binlog read_only = 1 # 设置从库为只读模式,防止直接写数据
2、重启 MySQL 服务
sudo systemctl restart mysql
3、配置从服务器连接到主服务器
CHANGE MASTER TO MASTER_HOST='master_ip', # 主库的 IP 地址 MASTER_USER='testuser', # 复制用户 MASTER_PASSWORD='testpassword', # 复制用户的密码 MASTER_LOG_FILE='mysql-bin.000001', # 主库的 binlog 文件名 MASTER_LOG_POS= 107; # 主库的 binlog 位置 MASTER_PORT=3306; -- 如果主库使用的端口不是默认的 3306,记得修改
在这种方式下,你明确指定了从库开始复制的 binlog 文件 和 binlog 位置。
- MASTER_LOG_FILE='mysql-bin.000001':从库将从主库的
mysql-bin.000003
文件开始复制数据。 - MASTER_LOG_POS=107:从库将从主库的二进制日志文件
mysql-bin.000003
的位置 157 开始复制。
这种方式通常用于以下场景:
- 你已经在主库上进行了一些更改并且希望从特定位置开始复制。
- 恢复某个时间点的复制,或者重新启动复制
CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='testuser', MASTER_PASSWORD='testpassword', MASTER_PORT=3306; -- 如果主库使用的端口不是默认的 3306,记得修改
MASTER_LOG_FILE
和MASTER_LOG_POS
:如果主库的二进制日志没有启用,或者你只是初次设置复制(或者你不关心从哪个二进制日志文件开始),这两个参数可以省略。MySQL 会自动选择最新的二进制日志文件。
4、启动从库复制进程:START SLAVE;
5、查看从库的状态:
SHOW SLAVE STATUS;
- MASTER_LOG_FILE='mysql-bin.000001':从库将从主库的
重新初始化复制
如果主从库数据不一致或复制断开,可以尝试重新初始化复制过程:
在从库上停止复制:
STOP SLAVE; RESET SLAVE ALL;
在主库上查看当前的二进制日志文件和位置:
SHOW MASTER STATUS;
在从库上配置复制信息:
CHANGE MASTER TO MASTER_HOST = '主库IP', MASTER_USER = 'testuser', MASTER_PASSWORD = 'testpassword', MASTER_LOG_FILE = '记录的File', MASTER_LOG_POS = 记录的Position;
启动从库的复制进程:
START SLAVE;
若能对分论点进一步细分,结构会更立体。
建议提出分阶段实施路径,增强可行性。
选材新颖独特,通过细节描写赋予主题鲜活生命力。
?实用类评语?
新车首发,新的一年,只带想赚米的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com