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

生产环境升级mysql流程及配置主从服务

之前写到过mysql升级8.4的文章, 因此不再介绍mysql的安装过程

避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客

生产环境升级mysql8.4.x流程

 安装mysql

参考之前文章: 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客

配置主从

配置主从主要就看my.cnf里的配置

log-bin=/data/mysql8/data/mysql-bin

server-id=3

注意主从的server-id不要为同一个值

主数据库设置

-- 创建用户 slave

CREATE USER 'slave'@'%' IDENTIFIED BY 'password';

-- 授权

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';

-- 刷新权限

FLUSH PRIVILEGES;

查看bin-log日志名称

8.4.0及以上的版本不能再使用SHOW MASTER STATUS;

SHOW BINARY LOG STATUS;

记住以下两个值

配置从数据库

登录到从数据库,注意使用以下命令登录

./mysql --defaults-file=/data/mysql8/my.cnf -uroot -p

CHANGE REPLICATION SOURCE TO

SOURCE_HOST='192.168.0.103',

SOURCE_PORT=3306,

SOURCE_USER='slave',

SOURCE_PASSWORD='password',

SOURCE_LOG_FILE='binlog.000016',

SOURCE_LOG_POS=158;

从库执行命令,开始同步主库

START REPLICA;

查看复制状态

SHOW REPLICA STATUS\G;

如果上面状态有报错或复制失败 可能是数据不一致的原因,在从库上先停止复制

STOP REPLICA;

然后重置复制,它将清除复制元数据存储库,删除所有中继日志文件,并启动新的中继日志文件

RESET REPLICA;

最后重启复制

START REPLICA;

如果以上步骤还是不对,那么就重新再主数据库查询bin-log状态,然后从数据库切换为root账号复制, 注意:root账号一定要能在从服务器登录才行

可能遇到的问题

  1. 导入数据时可能会出现编码/排序规则不对的情况, 这个问题是在创建数据库的时候需要设置编码格式为utf8mb3, 因为在mysql8.4中默认的字符集是utf8mb4, 且由utf8mb3取代了utf8

  2. 导入数据时如果用到了坐标函数, 会出现GeomFromText does not exist的错误, 这是因为mysql8.0以后的版本废弃了这个函数, 改为了GeomFromText ==> ST_GeomFromText, 参考链接: mysql 出现 GeomFromText does not exist 解决方案-CSDN博客

  3. 在整个升级的过程中, 可能最容易出问题的就是设置主从, 在创建好slave用户, 且分配权限之后,可能还会出现复制不成功的情况, 解决方法, 可以使用root账号进行主从复制, 或给slave账号分配更多的权限

相关文章:

  • 【深度学习】ubuntu系统下docker部署cvat的自动标注功能(yolov8 segmentation)
  • 投影算子 Projection
  • CMake构建学习笔记18-cpp-httplib库的构建
  • CC攻击和DDOS攻击的区别有哪些?
  • [单master节点k8s部署]22.构建EFK日志收集平台(一)
  • 河南人社厅:注册满两年可按条件认定副高
  • 【Python报错已解决】TypeError: object of type ‘complex‘ has no len()
  • 红绿灯倒计时读秒数字识别系统源码分享
  • VisualGLM-6B——原理与部署
  • 【题解】Codeforces Round 975 (Div. 2) A~E
  • ENV | VUE3 的安装使用并跑通第一个项目(高效实操版)
  • CSDN 账号已经恢复,后续可能会把专栏内容整理成纸质书出版
  • wordpress Contact form 7发件人邮箱设置
  • navate 清理注册列表
  • VS Code、Git与自动化脚本的效能之旅
  • 2017年终总结、随想
  • CSS 专业技巧
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • PHP 的 SAPI 是个什么东西
  • 闭包,sync使用细节
  • 成为一名优秀的Developer的书单
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 聊聊redis的数据结构的应用
  • 事件委托的小应用
  • 项目实战-Api的解决方案
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​渐进式Web应用PWA的未来
  • #if等命令的学习
  • $ git push -u origin master 推送到远程库出错
  • $nextTick的使用场景介绍
  • (¥1011)-(一千零一拾一元整)输出
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (js)循环条件满足时终止循环
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (南京观海微电子)——示波器使用介绍
  • (三)elasticsearch 源码之启动流程分析
  • (三十五)大数据实战——Superset可视化平台搭建
  • (新)网络工程师考点串讲与真题详解
  • (译)2019年前端性能优化清单 — 下篇
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)iOS字体
  • . Flume面试题
  • ... 是什么 ?... 有什么用处?
  • .bat批处理(六):替换字符串中匹配的子串
  • .htaccess配置重写url引擎
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .Net core 6.0 升8.0
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET技术成长路线架构图
  • .net流程开发平台的一些难点(1)