linux安装mysql8.x报错解决

安装过程中下面的语句 

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

出现报错

/soft/mysql/bin/mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /soft/mysql/bin/mysqld)
/soft/mysql/bin/mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /soft/mysql/bin/mysqld)
/soft/mysql/bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /soft/mysql/bin/mysqld)
/soft/mysql/bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /soft/mysql/bin/mysqld)
/soft/mysql/bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /soft/mysql/bin/mysqld)
/soft/mysql/bin/mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /soft/mysql/bin/mysqld)
/soft/mysql/bin/mysqld: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /soft/mysql/bin/mysqld)
/soft/mysql/bin/mysqld: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /soft/mysql/bin/mysqld)
/soft/mysql/bin/mysqld: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /soft/mysql/bin/../lib/private/libcrypto.so.3)
/soft/mysql/bin/mysqld: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /soft/mysql/bin/../lib/private/libprotobuf-lite.so.3.19.4)
/soft/mysql/bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /soft/mysql/bin/../lib/private/libprotobuf-lite.so.3.19.4)
/soft/mysql/bin/mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /soft/mysql/bin/../lib/private/libprotobuf-lite.so.3.19.4)
/soft/mysql/bin/mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /soft/mysql/bin/../lib/private/libprotobuf-lite.so.3.19.4)
/soft/mysql/bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /soft/mysql/bin/../lib/private/libprotobuf-lite.so.3.19.4)

 总结来说归类为两个问题

问题1:libstdc++.so.6系列报错是由于当前动态库版本较低不满足软件的先决条件,从错误来看至少需要22以上的版本,用高版本(libstdc++.so.6.0.25升职更高)替换后从新创建软件连接即可。

问题2:libm.so.6和libc.so.6错误由于glibc版本较低导致,并且至少需要glibc 2.28的版本

 问题一的解决   libstdc++.so.6.0.26

1.从网上下载所需要的libstdc++.so.6.0.24版本

2.把libstdc++.so.6.0.26拷贝到/usr/lib64目录下

cp libstdc++.so.6.0.26 /usr/lib64/

3.删除原来的libstdc++.so.6符号连接。

rm -rf libstdc++.so.6

4.新建新符号连接

ln -s libstdc++.so.6.0.26 libstdc++.so.6

 这时候再执行

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data   你就会发现报错少了一点,也证明了libstdc++.so.6.0.24

问题二的解决   编译安装glibc-2.28

这里其实也很复杂 总体思路参考centos7升级glibc2.28_centos7 glibc2.28-优快云博客

1.下载glibc2.28

mkdir -p /opt/third-party && cd /opt/third-party
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar -xf glibc-2.28.tar.gz
cd glibc-2.28

2.查看glibc的INSTALL文件所描述的依赖 并 下载

vim INSTALL

可以发现我们需要前置条件是    >=4.0的make   和    >=4.9的gcc

 

照着链接做 基本没有问题

gcc升级链接 

 CentOS升级gcc到高版本(全部版本详细过程)_centos gcc update-优快云博客

这里我选择的是 7.3版本的gcc

make的升级

linux centos7 升级 make 4.3_centos7 make-4.3-优快云博客

3. 完成了前置条件之后   修改test-installation.pl文件

   添加 && $name ne "nss-test2"

【小知识点】行号  可以通过  :set number的方式   让其显示

vim scripts/test-installation.pl

4. 正式编译

这个过程我参考了两个链接

centos7升级glibc2.28_centos7 glibc2.28-优快云博客

centos7 glibc2.17升级到glibc2.28_centos_esdhhh-华为云开发者联盟

具体操作

cd /...对应的的路径.../glibc-2.28/

mkdir glibc_build
cd glibc_build
../configure --prefix=/usr --with-headers=/usr/include --with-binutils=/usr/bin

中间可能会有依赖的确实 下载对应的依赖即可

我操作的过程中缺失了bison   直接通过 yum install bison就可以解决了

然后是make编译 

make -j10

make install 

最后成功了   glibc2.28编译成功



 

mysql安装的最终结果   显示密码就OK了

 

参考链接

bug总体解决思路 https://www.cnblogs.com/Roobbin/p/17772445.html

libstdc++.so.6.0.26的安装 完美解决动态库问题libstdc++.so.6: version `CXXABI_1.3.11‘ not found_./mysqld: /lib64/libstdc++.so.6: version `cxxabi_1-优快云博客

glibc2.28升级  centos7升级glibc2.28_centos7 glibc2.28-优快云博客 

centos7 glibc2.17升级到glibc2.28_centos_esdhhh-华为云开发者联盟

gcc升级链接  CentOS升级gcc到高版本(全部版本详细过程)_centos gcc update-优快云博客

make升级链接 linux centos7 升级 make 4.3_centos7 make-4.3-优快云博客

### Linux安装 MySQL 出现错误代码 1681 的解决方案 错误代码 `1681` 通常表示在安装过程中出现了权限或文件访问问题。以下是针对该问题的分析和解决方法: #### 错误原因 错误代码 `1681` 可能由以下几个原因之一引起: - 文件系统权限不足,无法写入目标目录。 - 安装包损坏或不完整。 - 系统资源不足(如磁盘空间)。 --- #### 解决方案 ##### 1. 检查并修复文件系统权限 确保当前用户具有足够的权限来执行安装操作。如果使用的是 `.deb` 或 `.rpm` 包,则需要以超级用户身份运行命令。可以尝试以下命令来提升权限: ```bash sudo apt-get update && sudo apt-get install mysql-server ``` 或者对于基于 RPM 的发行版: ```bash sudo yum install mysql-server ``` 如果已经下载了安装包,也可以手动指定路径并赋予可执行权限: ```bash chmod +x /path/to/mysql-installer.run sudo ./path/to/mysql-installer.run ``` --- ##### 2. 验证安装包完整性 确认所使用的安装包未被破坏。可以通过重新下载官方发布的最新版本来解决问题。例如,在 Ubuntu 中可以从官方仓库获取最新的 MySQL 版本[^1]: ```bash wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb sudo apt-get update sudo apt-get install mysql-server ``` --- ##### 3. 清理旧的安装残留 有时之前的失败安装会留下一些冲突性的配置文件或服务进程,这可能导致新的安装失败。建议先清理这些残留项再重试安装。具体步骤如下: ```bash sudo systemctl stop mysql sudo apt-get remove --purge mysql* || sudo yum remove mysql* sudo rm -rf /var/lib/mysql /etc/mysql /var/log/mysql sudo apt-get autoremove && sudo apt-get autoclean || sudo yum clean all ``` 完成清理后,再次按照正常流程安装 MySQL。 --- ##### 4. 增加系统资源分配 如果服务器上的可用磁盘空间不足或其他硬件资源受限,也可能触发此错误。通过以下方式检查并优化环境: - 查看剩余磁盘空间: ```bash df -h ``` - 如果发现存储容量接近上限,请释放不必要的文件或将数据迁移到其他分区。 - 同时确保有足够的内存供 MySQL 使用;可通过调整 `/etc/my.cnf` 中的相关参数实现性能调优[^2]: ```ini [mysqld] innodb_buffer_pool_size = 2G max_connections = 150 ``` --- ##### 5. 调整 SELinux/AppArmor 设置 某些安全模块可能会干扰 MySQL 正常启动过程中的文件读取行为。如果是 CentOS/RHEL 类型的操作系统,默认启用了 SELinux ,可能需临时将其设置为宽容模式测试效果如何变化: ```bash setenforce 0 ``` 永久修改则编辑 `/etc/selinux/config` 将其中的 `SELINUX=enforcing` 改成 `permissive` 。而对于支持 AppArmor 的 Debian 衍生品来说,停用关联策略亦有助于排除潜在阻碍因素。 --- ### 总结 以上列举了几种常见情况下应对 Linux 平台下因错误码 `1681` 导致 MySQL 安装失败的方法。实际应用当中还需结合具体情况逐一排查直至找到根本症结所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值