MySQL数据库主从配置

MySQL主从配置

1. 修改数据库my.cnf文件

修改数据库my.cnf文件,在文件中添加如下内容,其中主数据库的server-id必须要比从库的更小。

bash 复制代码
# 注册集群id
server-id=101
# 开启二进制日志文件
log-bin=mysql-bin
# 设置日志格式
binlog-format=row
# 开启中继日志
relay-log=relay-bin
# 忽略拷贝错误
slave-skip-errors=all

从库server-id设置为102

2. 主库创建拷贝用户

sql 复制代码
CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
SHOW MASTER STATUS;
# mysql-bin.000003
# 597

记住输出的fileposition

3. 从库配置主库信息

sql 复制代码
CHANGE MASTER TO 
MASTER_HOST='10.0.0.11', 
MASTER_PORT=3321,
MASTER_USER='slave', 
MASTER_PASSWORD='slave', 
MASTER_LOG_FILE='mysql-bin.000003', 
MASTER_LOG_POS=597;
START SLAVE;
SHOW SLAVE STATUS \G;

查看Slave_IO_Running和Slave_SQL_Running是否为yes。

4. 测试

在主库中新建test数据库和test表,检查从库是否拷贝。

sql 复制代码
create database test;
use test;
CREATE TABLE `test` (
  `id` int NOT NULL AUTO_INCREMENT,
  `test` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# 插入数据测试
INSERT INTO `test` (`test`) VALUES ('abc');
INSERT INTO `test` (`test`) VALUES ('123');

从库中查询数据

mysql 复制代码
mysql> select * from test.test;
+----+------+
| id | test |
+----+------+
|  1 | abc  |
|  2 | 123  |
+----+------+
相关推荐
小马爱打代码9 小时前
Redis 集群方案详解:主从复制、哨兵、脑裂、分片集群和哈希槽
数据库·redis·哈希算法
海南java第二人11 小时前
ClickHouse 稀疏索引深度解析:为什么 OLAP 数据库不用 B-Tree?
数据库·clickhouse
Litluecat11 小时前
信创迁移:Oracle切换海量数据库,慢sql扫描
数据库·sql·oracle·信创·海量
消失在人海中11 小时前
Oracle的CURRENT REDO丢失,数据丢失风险分析
数据库·oracle
喵了几个咪12 小时前
选择第三方IAM还是自建权限体系?中小型后台系统权限架构决策指南
数据库·oracle·架构
Elastic 中国社区官方博客13 小时前
Kibana:使用 AI Chat 及 MCP 轻松创建 AI 原生仪表板
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·信息可视化
杨云龙UP13 小时前
Oracle Health Check巡检脚本使用SOP V2.0:从HTML原始报告→生成Word专业巡检报告→交付客户_2026-06-03
linux·运维·数据库·sql·oracle·报告·巡检
Database_Cool_13 小时前
Hudi 湖仓一体架构:阿里云 AnalyticDB MySQL 原生集成最佳实践
数据库·mysql·阿里云
我是一颗柠檬14 小时前
【Redis】发布订阅与消息队列Day8(2026年)
数据库·redis·后端·缓存