MySQL-Cluster 和主从(Master,Slave)搭建总结

本文详细介绍了MySQL双主互备复制配置过程,包括开启binlog日志、设置server-id、添加复制账户、数据备份与恢复、指定MasterServer、开启slave角色及常见错误排除等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

双主互备,主从

什么是双主

MultiSource 多源复制

原理及流程图

  

主要步骤

1,在 Master Server 上开启 bin log 日志 和 设置 server-id  ;(在my.cnf文件中设置)

  

    

2,添加复制账户

  grant replication slave on *.* to  'rep'@'192.168.31.%' identified by 'ABCDabcd' ;

  flush privileges;

3 , 把 Master Server 上的数据通过mysqldump 备份出来,导入到Slave Server 上进行恢复。

 

4,在 Slave Server 上开启 bin log 日志 和 设置 server-id  , 恢复数据

5,在Slave Server上指定那台机器是Master Server.

       

6, 在Slave Server上开启slave角色。

  

7, 查看状态,确保 Slave_IO , Slave_SQL 都是YES , 才表示配置成功。然后就可以做相应的测试了,确保无问题。

  

 8, 一些错误排除

  a, UUID重复 或 server-id 错误

    解决 :show variables like 'server_id' 

    uuid重复在mysql 数据目录下找到auto.cnf 文件,改成其他名字或删除,然后重启数据库。

  b, 查看状态

    show master status\G  

    show slave status\G

  c, IO线程状态connecting 

                检查master_host 是否正确,最好用IP,

                 检查rep账户联通性

转载于:https://www.cnblogs.com/li-tian-jun/p/10014873.html

<think>好的,用户在使用Docker时遇到了问题,运行`docker run -d --name slave2 --network mysql-cluster`时提示需要至少一个参数。首先,我需要确认用户的问题所在。根据错误信息,`docker run`命令缺少必要的参数,也就是镜像名称。用户可能是在输入命令时遗漏了镜像名,导致Docker无法执行。 接下来,我需要回忆Docker的基本命令结构。`docker run`的正确用法是必须指定镜像名称,之后可以跟其他选项容器名称等。用户可能是在快速操作时漏掉了镜像名,比如原本应该是`mysql:8.0.38`或者其他镜像。 然后,我需要考虑用户可能的场景。用户之前的问题是关于在Kylin Linux上配置MySQL主从复制,所以这次可能是在启动从库容器时犯了拼写错误或者遗漏了镜像参数。用户可能是在复制之前的命令时,不小心删除了镜像部分,或者对Docker命令不熟悉导致错误。 另外,用户可能对Docker命令不太熟悉,特别是新手容易忘记镜像名称的位置。需要指出正确的命令格式,并提醒用户检查镜像是否存在。同时,用户可能没有拉取所需的镜像,导致即使补上镜像名也会出错,所以需要建议用户先执行`docker pull`。 还需要考虑用户的环境,之前提到使用的是Docker 28版本,可能存在版本差异,但通常命令结构不会有太大变化。此外,用户可能是在脚本或文档中复制命令时出错,需要检查命令的完整性。 最后,需要给出具体的解决步骤,包括补全镜像名称、检查镜像是否存在、提供示例命令,并解释每个参数的作用,帮助用户理解问题所在,避免未来再犯类似错误。同时,根据用户之前的问题,可能需要关联到主从复制的配置,确保容器正确加入网络,并验证网络配置是否正确。 </think> ### 错误原因及修复步骤 #### 错误原因 命令中缺少**镜像名称**,导致Docker无法识别要运行的容器。Docker的 `run` 命令必须指定镜像名称作为参数。 #### 正确命令格式 ```bash docker run -d --name slave2 --network mysql-cluster <镜像名称> ``` #### 修复步骤 1. **补全镜像名称** 假设你使用MySQL 8.0.38镜像,正确命令应为: ```bash docker run -d --name slave2 --network mysql-cluster mysql:8.0.38 ``` 2. **确认镜像已存在** 若未提前拉取镜像,需先执行: ```bash docker pull mysql:8.0.38 ``` 3. **验证容器是否加入网络** 检查容器是否成功加入 `mysql-cluster` 网络: ```bash docker network inspect mysql-cluster ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值