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

前言:

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

1.排错记录

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

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

这里笔者偷了个懒,去公司其他服务器上拷贝来了个6.0.25版本的libstdc++.so替换了下,果然可用,再次执行下初始化,报错少了很多。
image.png
那就继续按此办法来呗,继续替换其他几个so文件,弄着弄着发现不对劲,连基础命令 cd ls 执行都报错找不到 libc.so.6 库文件了,网上查了下原来是 glibc 库文件损坏了,好家伙 碰到大动脉了,幸亏我还ssh连接着,一通操作终于能正常用了。

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

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

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

后来查询资料得知,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 版本为例,我们看下官网上的安装包:
image.png

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

根据 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 的二进制文件。

image.png

总结:

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

<think>嗯,用户想要在CentOS 7.9安装MySQL 8.0.41的RPM包,这个包是el9的,也就是针对Enterprise Linux 9的。首先,我得确认这个包是否兼容CentOS 7,因为el9的RPM可能依赖更高版本的库,CentOS 7的库可能比较旧,安装时可能会出现依赖问题。 接下来,我需要考虑用户可能已经下载了那个tar包,里面应该包含多个RPM文件。通常安装MySQL的RPM bundle需要按顺序安装common、libs、client、server这些包。不过,如果依赖有问题,可能需要先解决依赖,比如安装较新版本的openssl或者其他库。 用户可能遇到的主要问题是依赖冲突,比如libcrypto或者libssl的版本不够。这时候可能需要从CentOS的源或者其他地方获取更新的包,或者考虑使用MySQL官方提供的Yum仓库来安装,这样可能会自动处理依赖关系。 另外,用户可能需要卸载系统自带的mariadb,避免冲突。安装完成后,初始化数据库、启动服务、设置开机启动这些步骤都是必需的,还有修改root密码和创建用户等安全设置。 需要提醒用户注意备份数据,尤其是在升级或更换数据库版本的时候。如果用户坚持使用这个el9的包,可能需要手动解决依赖,或者建议他们使用兼容CentOS 7MySQL版本,比如从MySQL官方Yum库安装,这样会更顺利一些。 最后,要确保步骤清晰,给出具体的命令示例,并说明可能遇到的问题和解决方法,帮助用户顺利完成安装。</think>在CentOS 7.9系统上安装MySQL 8.0.41的RPM bundle包时,需要注意以下几个关键步骤和潜在问题: --- ### 一、准备工作 1. **下载验证** ```bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41-1.el9.x86_64.rpm-bundle.tar ``` > 注意:`el9`表示该包是为RHEL 9设计,CentOS 7可能存在兼容性问题 2. **卸载旧版本** ```bash sudo yum remove mariadb* mysql* ``` --- ### 二、安装步骤 1. **解压RPM包** ```bash tar -xvf mysql-8.0.41-1.el9.x86_64.rpm-bundle.tar ``` 2. **依赖问题解决** ```bash sudo yum install openssl-devel libaio perl ncurses-compat-libs ``` 3. **强制安装(慎用)** ```bash sudo rpm -ivh mysql-community-common-8.0.41-1.el9.x86_64.rpm --nodeps sudo rpm -ivh mysql-community-client-plugins-8.0.41-1.el9.x86_64.rpm --nodeps sudo rpm -ivh mysql-community-libs-8.0.41-1.el9.x86_64.rpm --nodeps sudo rpm -ivh mysql-community-client-8.0.41-1.el9.x86_64.rpm --nodeps sudo rpm -ivh mysql-community-server-8.0.41-1.el9.x86_64.rpm --nodeps ``` --- ### 三、常见问题处理 1. **依赖冲突示例** ```bash Error: Package: mysql-community-libs-8.0.41-1.el9.x86_64 (/mysql-community-libs-8.0.41-1.el9.x86_64) Requires: libcrypto.so.1.1()(64bit) ``` > 解决方法:从CentOS 7的base源安装openssl 1.0.2k ```bash sudo yum downgrade openssl ``` 2. **服务启动失败** ```bash sudo systemctl start mysqld journalctl -xe # 查看详细错误日志 ``` --- ### 四、推荐替代方案 如果持续遇到依赖问题,建议改用MySQL官方Yum源安装: ```bash sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm sudo yum install mysql-community-server ``` --- ### 五、初始化配置 ```bash sudo systemctl enable mysqld sudo systemctl start mysqld grep &#39;temporary password&#39; /var/log/mysqld.log mysql_secure_installation ``` --- ### 注意事项 1. **版本兼容性警告**:`el9`包在CentOS 7上可能无法稳定运行,建议优先使用`el7`版本 2. **数据备份**:安装前建议备份现有数据库 3. **防火墙设置**: ```bash firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload ``` 如需更稳定的MySQL 8.0安装,建议通过官方Yum仓库或使用Docker容器化部署。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值