百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

CentOS7.9安装mysql-8.0.36踩坑小记

ztj100 2025-01-24 14:52 20 浏览 0 评论

前言:

最近想在一台测试服务器上,安装下最新的 MySQL 8.0 版本数据库,想着挺简单的一件事,之前也手搓过 8.0 安装,这不手到擒来,没想到马失前蹄,遇到了一个小坑,耗费了不少时间,简单写篇文档记录下吧。

1.排错记录

执行 ./mysqld --initialize 初始化命令后,提示报错,如下图所示



看报错应该是一些 so 文件版本太低,想着一步步解决呗,首先检查下 libstdc++.so.6 库版本,果然少了 GLIBCXX_3.4.20 等几项。



这里笔者偷了个懒,去公司其他服务器上拷贝来了个 6.0.25 版本的 libstdc++.so 替换了下,果然可用,再次执行下初始化,报错少了很多。



那就继续按此办法来呗,继续替换其他几个 so 文件,弄着弄着发现不对劲,连基础命令 cd ls 执行都报错找不到 libc.so.6 库文件了,网上查了下原来是 glibc 库文件损坏了,好家伙 碰到大动脉了,幸亏我还 ssh 连接着,一通操作终于能正常用了。


原谅我后知后觉,至此我才明白,原来是 glibc 和 gcc 版本太低的问题,尝试下更新 glibc ,发现已经是最新版了,难道是 yum 源太老?那么只能换新的 yum 源或者用源码编译安装了。



之前也在 CentOS 7.9 服务器上安装过 MySQL 啊,怎么没遇到此类问题,回过头看安装包,我才发现下载的是 glibc2.28 版本的安装包,需要 glibc 版本在 2.28 及以上。



再次去 MySQL 官网查看,发现还真有不同 glibc 版本的安装包,之前还真没注意过,低版本的 linux 发行版,如果不想升级 glibc 的话,使用低版本的安装包即可。



后来查询资料得知,CentOS 7.9 系统默认的 glibc 版本是 2.17 ,glibc 是 Linux 系统中不可或缺的一部分,几乎所有的 Linux 程序都直接或间接依赖于它,是 Linux 系统中的一个非常重要的库,为系统提供了许多基本的函数库,扮演着至关重要的角色,所以生产服务器还是谨慎进行升级。建议 CentOS 7.9 安装 MySQL ,使用 glibc 为 2.12 或 2.17 版本的安装包。

2.全面认识 MySQL 安装包


经过这次排错过程,也让我对 MySQL 安装包有了更多的认识,以 Linux 系统 MySQL 8.0.36 版本为例,我们看下官网上的安装包:



根据处理器架构区分,MySQL 提供 x86_32-bit 、x86_64-bit 及 ARM_64-bit 三种,一般我们的服务器都是 x86 64-bit 架构,可以通过 uname -m 或者 arch 命令来查看。



x86_32-bit 架构的安装包带有 i686 标识,x86_64-bit 架构的安装包带有 x86_64 标识,ARM_64-bit 架构的安装包带有 aarch64 标识。



根据 glibc 版本不同,官方提供 glibc2.28 、glibc2.12、glibc2.17 三种,使用 ldd --version 命名可查看本机 glibc 的版本,然后选择匹配的安装包即可。


对于特定的 glibc 版本及处理器架构,MySQL 官方又提供了三种不同的安装包。mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz 这个安装包通常包含了 MySQL 服务器的二进制文件,它是用于生产环境的 MySQL 数据库系统的主要组件,包括 MySQL 数据库引擎、管理工具和客户端库等,允许用户安装并运行 MySQL 数据库服务器,一般二进制安装选择此安装包。mysql-test-8.0.36-linux-glibc2.28-x86_64.tar.xz 这个安装包包含了 MySQL 的测试套件,它主要用于开发者或者测试人员来对 MySQL 数据库进行测试,包括单元测试、功能测试、性能测试等。mysql-8.0.36-linux-glibc2.28-x86_64.tar 包则是一个集成包,用于提供 MySQL 数据库服务器、测试套件和 MySQL Router 的二进制文件。



总结:

经过这次小插曲,也算重新认识了 MySQL 的安装包,其实从 MySQL 8.0.33 版本开始,官方才提供基于 glibc2.28 的安装包,难怪之前没遇到过,之前都是用的 glibc2.12 版本的安装包。总而言之,安装 MySQL 时,要根据自己的操作系统及 glibc 版本来选择匹配的安装包,这样才能避免初始化失败。

相关推荐

Vue3非兼容变更——函数式组件(vue 兼容)

在Vue2.X中,函数式组件有两个主要应用场景:作为性能优化,因为它们的初始化速度比有状态组件快得多;返回多个根节点。然而在Vue3.X中,有状态组件的性能已经提高到可以忽略不计的程度。此外,有状态组...

利用vue.js进行组件化开发,一学就会(一)

组件原理/组成组件(Component)扩展HTML元素,封装可重用的代码,核心目标是为了可重用性高,减少重复性的开发。组件预先定义好行为的ViewModel类。代码按照template\styl...

Vue3 新趋势:10 个最强 X 操作!(vue.3)

Vue3为前端开发带来了诸多革新,它不仅提升了性能,还提供了...

总结 Vue3 组件管理 12 种高级写法,灵活使用才能提高效率

SFC单文件组件顾名思义,就是一个.vue文件只写一个组件...

前端流行框架Vue3教程:17. _组件数据传递

_组件数据传递我们之前讲解过了组件之间的数据传递,...

前端流行框架Vue3教程:14. 组件传递Props效验

组件传递Props效验Vue组件可以更细致地声明对传入的props的校验要求...

前端流行框架Vue3教程:25. 组件保持存活

25.组件保持存活当使用...

5 个被低估的 Vue3 实战技巧,让你的项目性能提升 300%?

前端圈最近都在卷性能优化和工程化,你还在用老一套的Vue3开发方法?作为摸爬滚打多年的老前端,今天就把私藏的几个Vue3实战技巧分享出来,帮你在开发效率、代码质量和项目性能上实现弯道超车!一、...

绝望!Vue3 组件频繁崩溃?7 个硬核技巧让性能暴涨 400%!

前端的兄弟姐妹们五一假期快乐,谁还没在Vue3项目上栽过跟头?满心欢喜写好的组件,一到实际场景就频频崩溃,页面加载慢得像蜗牛,操作卡顿到让人想砸电脑。用户疯狂吐槽,领导脸色难看,自己改代码改到怀疑...

前端流行框架Vue3教程:15. 组件事件

组件事件在组件的模板表达式中,可以直接使用...

Vue3,看这篇就够了(vue3 从入门到实战)

一、前言最近很多技术网站,讨论的最多的无非就是Vue3了,大多数都是CompositionAPI和基于Proxy的原理分析。但是今天想着跟大家聊聊,Vue3对于一个低代码平台的前端更深层次意味着什么...

前端流行框架Vue3教程:24.动态组件

24.动态组件有些场景会需要在两个组件间来回切换,比如Tab界面...

前端流行框架Vue3教程:12. 组件的注册方式

组件的注册方式一个Vue组件在使用前需要先被“注册”,这样Vue才能在渲染模板时找到其对应的实现。组件注册有两种方式:全局注册和局部注册...

焦虑!Vue3 组件频繁假死?6 个奇招让页面流畅度狂飙 500%!

前端圈的朋友们,谁还没在Vue3项目上踩过性能的坑?满心期待开发出的组件,一到高并发场景就频繁假死,用户反馈页面点不动,产品经理追着问进度,自己调试到心态炸裂!别以为这是个例,不少人在电商大促、数...

前端流行框架Vue3教程:26. 异步组件

根据上节课的代码,我们在切换到B组件的时候,发现并没有网络请求:异步组件:...

取消回复欢迎 发表评论: