【MySQL Router】使用 systemd 管理 MySQL Router

news2025/4/16 11:47:35

使用 systemd 管理 MySQL Router

文章目录

  • 使用 systemd 管理 MySQL Router
    • 排错过程
      • 升级操作系统内核
      • 未修改相关文件的属主,直接用 mysqlrouter 重新引导
      • 配置操作系统 limit 相关参数
      • 用户及其权限问题
    • 结语

在之前的文章 【 InnoDB Cluster 】安装部署 MySQL Router 中介绍了如何安装、部署 MySQL Router ,当时遇到一个问题,MySQL Router 部署好后无法使用 systemd 来启动,会报如下错误:
图1 systemd 启动 mysqlrouter 报错
图1 systemd 启动 mysqlrouter 报错

当时我以为是 systemd 版本过低的问题,升级了还是报错,就怀疑是操作系统内核太低的问题。今天验证了一下,其实是引导 MySQL Router 所用的操作系统用户及其权限的问题。后面我在 MySQL Router 的文档里找到了相关介绍——配置文件选项 user 。所以,有时间的话,还是应先看书学习理论(对于 MySQL 也可说是先看说明书),再实践操作。

排错过程

升级操作系统内核

使用 Yum 仓库包升级操作系统内核至 kernel-3.10.0-1160.80.1.el7.x86_64 版本,并删除旧的内核和 RPM 包,最后重启。

yum upgrade -y kernel*
#查看已安装的内核 RPM 包
rpm -qa|grep kernel
#移除旧的内核
kernel-install remove 旧的内核名称
rpm -e 旧的内核名称

然后重启。如想了解详细信息,请关注我后面的文章。

图2 最终效果
最终效果
重启后发现还是报错,证明不是它的问题。

未修改相关文件的属主,直接用 mysqlrouter 重新引导

然后我立即想到是引导时使用的操作系统账户的问题,因为当时提示了不能使用 superuser root 来引导,如果非要这么做,请指定--user=root,然后我当时就这么做了。

但重新引导后查看systemctl status mysqlrouter仍然报同样的错误,这让我很困惑,所以怀疑到打开文件数的 limit 上去了。直到使用journalctl -xe查看报错消息(当时并没有想到这),才确定是用户权限问题。

journalctl 报错
然后我试着修改了一些文件的属主为mysqlrouter:myqlrouter,再次journalctl -xe发现报错不同了。
在这里插入图片描述
搜索相关报错信息并没有找到明确的解决办法,但发现有几个网页里最终发现都是权限、属主问题,再次印证了我的想法。

配置操作系统 limit 相关参数

看到报错中有 start-limit ,怀疑是配置操作系统 limit 相关参数中 openfiles 导致的。

ulimit -n -u
ulimit -n 1024000

ulimit -n -u

vim /etc/security/limits.conf
#末尾添加
# “-”表示soft和hard都配置为相同值
*       -       nofile  1024000
*       -       nproc   1024000

limits.conf

结果还是不行,也不是它的问题。

用户及其权限问题

查询包含 mysqlrouter 关键字的文件:

find / -name mysqlrouter

find
分别查看各文件及文件夹的属主、权限后,发现属主有些为 mysqlrouter ,有些为 root ,而我并没有手动创建 mysqlrouter 账户,故应该是安装它时自动创建的。

那么我们看一下服务程序是否有问题,这里是/usr/lib/systemd/system/mysqlrouter.service

vim /usr/lib/systemd/system/mysqlrouter.service

发现默认是 mysqlrouter,问题原因找到了!

注意
此处注释中的 root 是我后加的,而非原来就有的。

默认是 mysqlrouter

此时,有两种解决方案:

  1. 重新使用选项--user=mysqlrouter引导 MySQL Router 。这是推荐的方案。
    重新引导前,必须先将 mysqlrouter 相关的文件属主修改为 mysqlrouter 才行。建议使用上面的find命令查找出的结果,结合经验和文件名称、作用,对怀疑的文件或文件夹逐个尝试修改属主。

    mysqlrouter --bootstrap ic_admin@ic-source:3306 --account=myRouter1 --user=mysqlrouter
    

    使用 mysqlrouter 重新引导
    然后修改/etc/mysqlrouter目录的属主。

    chown -R mysqlrouter:mysqlrouter /etc/mysqlrouter
    

    启动 mysqlrouter

  2. mysqlrouter 替换为 root ,改完保存后执行systemctl daemon-reload,再使用systemctl start mysqlrouter即可成功启动。

    vim /usr/lib/systemd/system/mysqlrouter.service
    

    vim mysqlrouter.service 改完mysqlrouter.service 后重载、启动 mysqlrouter

结语

造成此问题的原因是我不听劝强制使用 root 引导 MySQL Router ,但也是因为我看到有提示信息显示支持--user=root的方式强制用 root 引导才做的。而提示信息和报错信息并没有说明这么做的隐患和错在哪里,mysqlrouter -?也找不到相应信息。

解决问题后,我想找到问题产生的原因,于是在 MySQL 官网的 《MySQL Router 8.0》文档三次跳转页面才找到了相关信息的!这也是我觉得 MySQL 官网文档难于学习的一点——写的太乱,还有就是措辞偏外国人,文化习惯差异导致不利于快速学习。他们可以将一个知识点的相关内容放在多个章节里,甚至多个文档里,更可气的是标题还都差不多,很多只有时态、词性方面的差异,内容有些也有很高的重复率,关键差异信息只有一点,而这恰恰是你需要的呀!这就很烦!

我时间紧张,近期任务是快速学习搭建 MySQL InnoDB ClusterSet ,没那么多时间去先看文档再操作。这在如今的社会很正常吧,你买来一个诸如手机的电子产品,纵使它说明再全,你一开始也不会去先看说明再去摆弄,而是在遇到摆弄不明白的地方时才想着去看说明书,查资料。IT 技术的官方文档也是如此,本质上就是说明书,而 MySQL 这样的产品本质上就是个工具,很多人的需求只是会用就行,不关心内部设计细节,只有 DBA 这类人员才需要关注更多。

生活就是这样,任何事情只要肯琢磨,门道都挺深的。职场工作也分两条发展路线,一种是 ,即精益求精的资深专家路线;一种是 ,即博学多才的全面型人才。是不是感觉架构里的 Scale-UpScale-Out 很像?两者也都有缺陷:专家路线容易把路子走窄了,尤其是所学的知识将要被淘汰了时,专家的待遇将直线下滑;全面型人才容易样样都通样样不精,中国人叫他们“一瓶子不满半瓶子晃荡”、“鼯鼠”,美国人叫他们“Jack of all trades”。在当今社会分工如此细化的社会,一般来讲,做专家的待遇要优于做全能型人才,至少票子上的表现是如此;而如果脱离社会或遇到荒野迷路、战争动荡、末世求生,全能型人才的优势将是巨大的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch_第2章_ elasticsearch_进阶

Elasticsearch_第2章_ elasticsearch_进阶 文章目录Elasticsearch_第2章_ elasticsearch_进阶0.学习目标1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法1.2.5.小结1.3.RestAPI实现聚合1.3.1.API语法1.…

Conv2Former

又发现了一个说比Transformer好的,通过充分利用卷积探索一种更高效的编码空域特征的方式:通过组合ConvNet与ViT的设计理念,本文利用卷积调制操作对自注意力进行了简化,进而构建了一种新的ConvNet架构Conv2Former超简Transformer风格ConvNet&a…

Python基础之MySql数据库交互

Python基础之MySql数据库交互一、使用MySql进行持久化存储二、安装MySql数据库和Python库PyMySQL三、使用pymysql链接mysql数据库四、创建表五、插入数据六、后记一、使用MySql进行持久化存储 在任何应用中,都需要持久化存储。一般有 3 种基础的存储机制&#xff1…

oepncv c++ 连通组件扫描

1、概念 连通组件指在图像上通过四邻域或八邻域法,连接起来的像素值大于某一阈值的区域(这些像素点被称为前景像素),而小于阈值的区域被称为背景。如下图的4个连通组件。 四邻域、八邻域: 2、常用算法 a)基…

35岁程序员,都到哪儿去了?

在很多人眼里,程序员的薪资就是普通人的天花板。关于程序员35岁被优化这个亘古不变的话题,也有不少人冷嘲热讽:你花10年的时间赚到了我30年、40年都赚不到的钱,有什么好焦虑不满呢?钱还不够用吗? 而那些年纪…

榛子云短信验证平台与springboot集成的短信验证

登录 - 榛子云短信用户系统 (zhenzikj.com) 上面是登录榛子云短信验证平台的入口&#xff0c;此平台的短信大概为3.1分一条短信。 如何与spring boot进行集成呢&#xff0c;我以注册为例来慢慢讲解 1.注册号榛子云账号并充值可发送短信 2.在项目pom.xml导入jar包 <!-- 榛…

HTML+CSS+JS我的班级网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

位运算介绍、图解位运算相关题目【一个数字出现了K次,其他数字出现了M次,M > 1 K < M 找到出现了K次的数】【找到出现奇数次的数】等题目

位运算 常见的位运算 >>、>>>、<<、|、&、^、||、&&、~等 原码、反码、补码 原码 将一个整数转换成二进制形式&#xff0c;就是其原码。例如 6 原码就是……0000 0000 0000 0110 反码 对于正数&#xff0c;它的反码就是其原码&#xff08;…

节省50%带宽,这款媒体处理产品了解下!

视频处理技术想必大家都有所了解&#xff0c;现在每天都会涌现出大量新的视频处理模型&#xff0c;它们有的能够超分、降噪&#xff0c;有的能够做目标检测、跟踪、识别&#xff0c;加上一些前端技术就能实现很多炫酷的功能。但是现在大多数模型都是单任务模型&#xff0c;想要…

【POJ No. 2777】 颜色统计 Count Color

【POJ No. 2777】 颜色统计 Count Color 北大OJ 题目地址 【题意】 有一个长L 厘米的电路板&#xff0c;可以将板均分为L 段&#xff08;1&#xff5e;L &#xff09;&#xff0c;每段长1厘米。现在给电路板上色&#xff0c;每段只有一种颜色。可以在电路板上执行两种操作&am…

Qt扫盲-Assistant 助手使用总结

Qt Assistant助手 使用记录预备一、顶部菜单栏1. 快捷栏2. 文件、前往、帮助3. 查看-工具栏4. 编辑-首选项5. 书签二、侧边菜单栏1. 修改显示功能Bar2. 内容3. 索引4. 书签三、内容主体1. 结构总览 Content2. Properties3. Public Functions4. Reimplemented Public Functions5…

【JUC】并发编程学习笔记(三)

JUC并发编程八、ReentrantReadWriteLock 读写锁8.1、概述8.2、案例8.3、读写锁的降级九、BlockingQueue阻塞队列9.1、阻塞队列概述9.2、阻塞队列分类9.2.1、ArrayBlockingQueue(常用)9.2.2、LinkedBlockingQueue(常用)9.2.3、 DelayQueue9.2.4、 PriorityBlockingQueue9.2.5、 …

混合馈能悬架的设计与仿真(MATLAB)

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1课题研究背景和意义 1 1.2国内外研究现状 2 1.3本文的主要研究内容 4 第二章 混合馈能悬架系统的工作原理 5 2.1混合馈能悬架系统的设计理念 5 2.2馈能系统的原理 6 2.3馈能系统的类型 6 2.4混合馈能悬架系统结构选型 8 2.5本章小结…

技术分享 | 如何确保API 的稳定性与正确性?你只需要这一招

现在&#xff0c;越来越多的 Web 应用转向了RESTful的架构&#xff0c;很多产品和应用暴露给用户的往往就是一组 REST API&#xff0c;这样有一个好处&#xff0c;用户可以根据需要&#xff0c;调用不同的 API&#xff0c;整合出自己的应用出来。从这个角度来讲&#xff0c;Web…

前端字体压缩(免费简单易上手)

场景&#xff1a;前端在开发过程中有时候要用到特殊字体&#xff0c;但如果引用网上下载好的字体&#xff0c;它们都是一个全的字体文件&#xff0c;这种字体文件里往往包含了大量你用不到的文字字符&#xff0c;从而导致你引入的字体文件大小高达1M以上&#xff0c;这会严重影…

C++08函数模板

1.自动推导类型 在C语言和C98中&#xff0c;auto 关键字用于修饰变量(自动存储的局部变量)。 在C11中&#xff0c;赋予了auto 全新的含义&#xff0c;不再用于修饰的变量&#xff0c;而是作为一个类型指示符&#xff0c;指示编译器在编译时推导auto声明的变量的数据类型。 在…

SpirngBoot<读完包你更上一层楼>

目录 一、SpringBoot概念 1.1 什么是SpringBoot 1.2 为什么要学习SpringBoot 1.3 SpringBoot的特点 1.4 总结 二、入门案例 2.1 创建工程 2.1.1 创建一个空工程 2.1.2 工程名为project_test&#xff1a; 2.1.3 设置jdk版本为1.8 2.1.4 新建一个module 2.1.5 填写项…

入职字节外包一个月,我离职了

有一种打工人的羡慕&#xff0c;叫做“大厂”。 真是年少不知大厂香&#xff0c;错把青春插稻秧。 但是&#xff0c;在深圳有一群比大厂员工更庞大的群体&#xff0c;他们顶着大厂的“名”&#xff0c;做着大厂的工作&#xff0c;还可以享受大厂的伙食&#xff0c;却没有大厂…

[附源码]计算机毕业设计springboot吾悦商城管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

老司机带带你,教你学会Java中又骚又暴力的“反射”技术

在Java中有这么一个很骚的技术&#xff0c;几乎贯穿了所有主流的框架&#xff0c;在所有主流框架的底层中你都可以看见它的身影&#xff0c;这个技术就是反射。关于反射&#xff0c;有很多小白会觉得很难&#xff0c;搞不清楚到底是怎么回事&#xff0c;也不知道该怎么用&#…