java
标准化、规范化
java代码风格
【目录】java
编程-java8
编程-java9
编程-java-见过的异常
gradle
编程-java21
编程-java23
编程-java17
编程-java11
【目录】java-web-其它框架
java-vertx
quarkus
javalin
solon
Helidon
【目录】spring家族
spring
springcloud + nacos
consul
springboot启动流程
springboot使用及原理
springcloud
优化springboot
【java高级】
java-多线程-问题记录
java高级-ArrayList
java高级-HashMap
jdk源码解析-TreeMap红黑树
java对象占用多少字节
juc(并发)
ThreadPoolExecutor中ctl变量的理解
ThreadPoolExecutor分析
JVM(java虚拟机)
jvm学习路线
jvm
Java启动参数
debug
java-debug-arthas
java-debug-jdb
高并发/高性能/高可用
设计代码或编写代码时应该考虑的
如何发现系统中的瓶颈?
场景分析
mysql
mysql explain
mysql主从
mysql常见异常
方法论
工作中遇到的问题记录
代码优化
学习的思路
产品
本文档使用 MrDoc 发布
-
+
首页
mysql主从
机器两台 ip: 192.168.18.200 master ip: 192.168.18.201 slave 1master 1slave master ```shell docker exec -ti mysql8_master /bin/bash mysql -uroot -p # 创建用户,设置主从同步的账户名 create user 'syncuser'@'%' identified with mysql_native_password by '123456'; # 授权 grant replication slave on *.* to 'syncuser'@'%'; # 刷新权限 flush privileges; show variables like 'server_id'; # 查询 Master 状态,并记录 File 和 Position 的值,这两个值用于和下边的从数据库中的 change 那条 sql 中的 master_log_file,master_log_pos 参数对齐使用 show master status; # 重置下 master 的 binlog 位点 reset master; show master status; ``` slave ```shell docker exec -ti mysql8_slave /bin/bash mysql -uroot -p # 这里master_host就是刚刚看到的master的ip,master_user就是我们创建用于同步的账号,master_log_file和master_log_pos就是通过show master status获得到的 CHANGE MASTER TO MASTER_HOST='192.168.18.200', MASTER=3306, MASTER_USER='syncuser', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=156; #开启同步 START SLAVE; #查看slave同步状态 SHOW SLAVE STATUS\G; # 最后需要查看是否配置成功 # 查看参数 Slave_IO_Running 和 Slave_SQL_Running 是否都为 yes,则证明配置成功。若为 no,则需要查看对应的 Last_IO_Error 或 Last_SQL_Error 的异 常值。 ``` docker-compose.yml见: ```yaml version: "3" services: mysql8_master: image: mysql:8.0.27 container_name: mysql8_master restart: always ports: - "3306:3306" command: --server-id=200 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --log-bin=mysql-bin --sync_binlog=1 --binlog-ignore-db="mysql,information_schema,performance_schema,sys" --max_allowed_packet=128M --lower_case_table_names=1 --performance_schema=off --innodb_buffer_pool_size=64M --expire_logs_days=7 --sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_BACKSLASH_ESCAPES" environment: - TZ=Asia/Shanghai - LANG=en_US.utf8 - MYSQL_ROOT_PASSWORD=123456 - MYSQL_DATABASE=db0 # - MYSQL_USER=abcdweg # - MYSQL_PASSWORD=123456 volumes: - /opt/docker_data/mysql8/var_lib_mysql:/var/lib/mysql ``` ```yaml version: "3" services: mysql8_slave: image: mysql:8.0.27 container_name: mysql8_slave restart: always ports: - "3306:3306" command: --server-id=201 --log-bin=mysql-slave-bin --relay-log=mysql-slave-relay-bin --read-only=1 --binlog-ignore-db="mysql,information_schema,performance_schema,sys" --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max_allowed_packet=128M --lower_case_table_names=1 --performance_schema=off --innodb_buffer_pool_size=64M --expire_logs_days=7 --sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_BACKSLASH_ESCAPES" environment: - TZ=Asia/Shanghai - LANG=en_US.utf8 - MYSQL_ROOT_PASSWORD=123456 - MYSQL_DATABASE=db0 # - MYSQL_USER=abcdweg # - MYSQL_PASSWORD=123456 volumes: - /opt/docker_data/mysql8/var_lib_mysql:/var/lib/mysql ```
我是张三
2025年3月22日 09:27
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
eblog
Markdown文件
分享
链接
类型
密码
更新密码