当前位置: 首页 > article >正文

mysql 8.0 搭建主从集群注意事项

mysql 8.0 的集群搭建方式和mysql 5.7的搭建方式,有点不同,命令改了。官方文档写的很全(又臭又长),所以写一篇笔记,简单总结下怎么搭建。

怎么安装mysql 8.0就不赘述了,假设两台机器已经完成数据初始化。

假设有两个主机,分别为: 192.168.0.6(主节点)、192.168.0.7

配置文件

  • my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 主从节点的id,要不一样
server-id=1
# 一定要加,用于创建主从复制账号时,设置账号的认证方式为简单密码认证。
# CREATE USER 'repl'@'%' IDENTIFIED WITH 'mysql_native_password'  BY 'xx';
mysql_native_password=ON
# 大小写不敏感
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

主节点

创建用户

CREATE USER 'copyuser'@'%' IDENTIFIED WITH 'mysql_native_password' BY '你的密码';
grant replication slave on *.* to 'copyuser'@'%';
FLUSH PRIVILEGES;

获取主节点日志坐标

坐标有两个维度,一个是当前日志文件名字,一个是文件中的位置。
从节点执行CHANGE REPLICATION SOURCE 时要对应上。

mysql> SHOW BINARY LOG STATUS\G
*************************** 1. row ***************************
             File: binlog.000002   # 坐标1,日志文件
         Position: 1948            # 坐标2:日志文件位置
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

从节点

创建用户

CREATE USER 'copyuser'@'%' IDENTIFIED WITH 'mysql_native_password' BY '你的密码';
grant replication slave on *.* to 'copyuser'@'%';
FLUSH PRIVILEGES;

设置主节点

  • SOURCE_HOST: 填主节点的IP192.168.0.6
CHANGE REPLICATION SOURCE TO
 SOURCE_HOST='主节点的ip',
 SOURCE_USER='copyuser',
 SOURCE_PASSWORD='你的密码',
 SOURCE_LOG_FILE='binlog.000002',
 SOURCE_LOG_POS=1948;

开启主从复制

为什么把start slave 改成start replica,只能说只是文化原因,slave是奴隶的意思,带有歧视色彩,尤其在漂亮国。作为一个应用广泛的数据库,必须要政治正确啊。

  • 开启主从复制
start replica;
  • 查看主从复制状态
mysql> show replica status\G;
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: xxx
                  Source_User: copyuser
                  Source_Port: 3306
                Connect_Retry: 60
              Source_Log_File: binlog.000003
          Read_Source_Log_Pos: 158
               Relay_Log_File: mysql-node2-relay-bin.000002
                Relay_Log_Pos: 325
        Relay_Source_Log_File: binlog.000003
				# ...
                   Last_Errno: 0
                   Last_Error:  # 这里的错误为空,代表主从搞成功了

测试主从

主节点上执行:

create database test;

从节点上查看数据库,执行以下语句,看看刚才主节点上建的库有没有?:

show databases;

附录

创建用户:

# 修改原来用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxx';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

# 创建远程登录用户
CREATE USER 'root'@'%' IDENTIFIED BY 'xxx';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

http://www.kler.cn/news/309451.html

相关文章:

  • 从登录到免登录:JSP与Servlet结合Cookie的基本实现
  • react 组件通讯
  • 面试题篇: 跨域问题如何处理(Java和Nginx处理方式)
  • Linux 使用 tar 命令
  • C++掉血迷宫
  • 在vmvare安装飞牛私有云 fnOS体验教程
  • 自动化测试框架pytest命令参数
  • 如何在@GenericGenerator中显式指定schema
  • 友思特方案 | 搭建红外桥梁:嵌入式视觉接口助力红外热像仪传输
  • SpringBoot入门(黑马)
  • 【数据可视化】Arcgis api 4.x 专题图制作之分级色彩,采用自然间断法(使用simple-statistics JS数学统计库生成自然间断点)
  • 0072__ActiveX插件的使用
  • Linux云计算 |【第二阶段】SHELL-DAY5
  • pdf文件怎么转换成ppt?介绍几种pdf转ppt的方法
  • 传感技术的应用
  • 利用正则表达式匹配格式并且获取替换内容中数据并保留
  • VS+QT--实现二进制和十进制的转换(含分数部分)
  • 去中心化的力量:探索Web3的分布式网络
  • 工商银行银企直联接口清单
  • Java高级Day40-QQ项目全代码
  • 使用SQL数据构建问答系统的完整指南
  • Nginx泛域名 解析的匹配前缀绑定或转发到子目录
  • APP测试基本流程与APP测试要点总结
  • 什么是单元测试?怎么做?
  • C++系列-匿名对象
  • linux网络命令:使用最多最广泛的网络抓包工具tcpdump详细介绍
  • MATLAB入门教程
  • 检查一个复数C的实部a和虚部b是否都是有限数值即a和b都不是无限数值、空值cmath.isfinite(x)
  • MES管理系统在智能制造中的重要应用
  • CMU 10423 Generative AI:lec5(Encoder-only Transformers + 阅读材料Bert, ViT)