侧边栏壁纸
博主头像
随心 博主等级

没有天赋,那就一直重复

  • 累计撰写 13 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

容器mysql数据库主从配置

随心
2025-06-03 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

docker run -d -p 3307:3306 --privileged=true -v /app/mysql-01/log:/var/log/mysql -v /app/mysql-01/data/:/var/lib/mysql -v /app/mysql-01/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql00001 mysql:5.7

在/app/mysql-01/conf下新建my.cnf并且重启容器01

[mysqld]

# 设置server_id,同一局域网中需要唯一

server_id=101

#指定不需要同步的数据库名称

binlog-ignore-db=mysql

# 开启二进制日志功能

log-bin=mall-mysql-bin

binlog_cache_size=1M

binlog_format=mixed

expire_logs_days=7

slave_skip_errors=1062

进入数据库新建用户,并且赋权。用户slave,密码123456

create user 'slave'@'%' identified by '123456';

grant replication slave, replication client on . to 'slave'@'%';

docker run -d -p 3308:3306 --privileged=true -v /app/mysql-02/log:/var/log/mysql -v /app/mysql-02/data/:/var/lib/mysql -v /app/mysql-02/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql00002 mysql:5.7

在/app/mysql-01/conf下新建my.cnf并且重启容器02

[mysqld]

server_id=102

binlog-ignore-db=mysql

# 开启二进制日志功能,以备slave成为其他数据库的master时使用。

log-bin=mall-mysql-slave1-bin

binlog_cache_size=1M

binlog_format=mixed

expire_logs_days=7

slave_skip_errors=1062

# relay_log配置中继日志

relay_log=mall=mysql-relay-bin

#表示slave将复制时间写进自己的二进制日志

log_slave_updates=1

#slave设置只读

read_only=1

然后在从数据库配置主从复制

master_log_file和master_log_pos值获取方法

进入从数据库

show master status;

取前两个字段的值

change master to master_host='主数据库ip' , master_user='在主数据库创建的用于同步的用户', master_password='在主数据库创建的用于同步的用户', master_port=主数据库的运行端口, master_log_file='File的值',master_log_pos=Position的值,master_connect_retry=连接失败重试的时间,单位秒;

从数据库检查同步状态

show slave status \G;

检查这两个状态。

Slave_IO_Running: No

Slave_SQL_Running: No

从数据库开始同步

start slave;

检查这两个状态,如果是yes表示配置主从成功。

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

(如果以上几步配置错误,可以执行一下清除 然后重新执行以上步骤。

STOP SLAVE; -- 如果复制已启动则停止

RESET SLAVE ALL; -- 清除所有复制配置(包括连接信息)

验证是否清除成功:

SHOW SLAVE STATUS\G)

0

评论区