前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker搭建mysql主从

docker搭建mysql主从

原创
作者头像
buiu
发布2022-01-30 20:06:38
5970
发布2022-01-30 20:06:38
举报
文章被收录于专栏:用户9090604的专栏
mysql主从
代码语言:shell
复制
# 主mysql启动
docker run --privileged=true -d -p 3307:3306  --name='mysql_master' \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /opt/mysql_master/log:/var/log/mysql \
-v /opt/mysql_master/data:/var/lib/mysql \
-v /opt/mysql_master/conf:/etc/mysql/conf.d mysql
# 从mysql启动
docker run --privileged=true -d -p 3308:3306 \
-e MYSQL_ROOT_PASSWORD=123456 --name='mysql_slave' \
-v /opt/mysql_slave/log:/var/log/mysql \
-v /opt/mysql_slave/data:/var/lib/mysql \
-v /opt/mysql_slave/conf:/etc/mysql/conf.d mysql

# 主mysql配置
	# 主mysql配置文件
		vim /opt/mysql_master/conf/my.cnf
	# 重启主mysql
		docker restart mysql_master
		
	docker exec -it mysql_master /bin/bash 
  # 创建数据同步的用户
  mysql -uroot -p123456
  create user 'slave'@'%' identified by '123456';
  grant replication slave,replication client on *.* to 'slave'@'%'; 	# 权限配置
  # 确认主mysql的主从状态
  show master status;
  
# 从mysql配置
	# 从mysql配置文件
	vim /opt/mysql_slave/conf/my.cnf
	# 重启从mysql
	docker restart mysql_slave
	docker exec -it mysql_slave /bin/bash 
	mysql -uroot -p123456
	# 配置主从复制
	change master to master_host='10.122.1.86', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=784, master_connect_retry=30;
	# 参数详解: master_log_file和master_log_pos在主mysql中使用show master status; master_connect_retry连接失败重试间隔时间; master_log_pos指定数据库从哪个位置开始复制数据
	# 开启主从复制
	start slave;
	# 确认
	show slave status \G;
	

<details>

<summary>主mysql配置文件</summary>

<pre><code>

mysqld

同一局域网内要唯一

server-id=101

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

binlog-ignore-db=mysql

开启二进制日志

log-bin=mall-mysql-bin

设置二进制日志使用内存大小(事务)

binlog_cache_size=1M

设置使用的二进制日志格式(mixed, statement, row)

binlog_format=mixed

二进制日志过期清理时间, 默认值为0, 表示不自动清理

expire_logs_days=7

跳过主从复制过程中所遇到的某些错误的类型

slave_skip_errors=1062

</code></pre>

</details>

<details>

<summary>从mysql配置文件</summary>

<pre><code>

mysqld

同一局域网内要唯一

server-id=102

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

binlog-ignore-db=mysql

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

log-bin=mall-mysql-slave1-bin

设置二进制日志使用内存大小(事务)

binlog_cache_size=1M

设置使用的二进制日志格式(mixed, statement, row)

binlog_format=mixed

二进制日志过期清理时间, 默认值为0, 表示不自动清理

expire_logs_days=7

跳过主从复制过程中所遇到的某些错误的类型

slave_skip_errors=1062

relay_log 配置中继日志

relay_log=mall-mysql-relay-bin

log_slave_updates表示slave将复制事件写进自己的二进制日志

log_slave_updates=1

slave设置为只读

read_only=1

</code></pre>

</details>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 同一局域网内要唯一
  • 指定不需要同步的数据库名称
  • 开启二进制日志
  • 设置二进制日志使用内存大小(事务)
  • 设置使用的二进制日志格式(mixed, statement, row)
  • 二进制日志过期清理时间, 默认值为0, 表示不自动清理
  • 跳过主从复制过程中所遇到的某些错误的类型
  • 同一局域网内要唯一
  • 指定不需要同步的数据库名称
  • 开启二进制日志功能, 以备slave作为其他数据库实例的master时使用
  • 设置二进制日志使用内存大小(事务)
  • 设置使用的二进制日志格式(mixed, statement, row)
  • 二进制日志过期清理时间, 默认值为0, 表示不自动清理
  • 跳过主从复制过程中所遇到的某些错误的类型
  • relay_log 配置中继日志
  • log_slave_updates表示slave将复制事件写进自己的二进制日志
  • slave设置为只读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档