Linux中解决libc.so.6: version `GLIBC_2.14' not found问题

3,330 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

在安装初始化MySQL的时候发现报错

./bin/mysqld: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./mysqld)

9345F535-0892-4698-985A-FABB60853BCE.png 这个是由于动态库版本低导致

1.查看系统glibc支持的版本

strings /lib64/libc.so.6 |grep GLIBC_

image.png

rpm -qa |grep glibc

image.png

2.下载安装包

www.gnu.org/software/li… 下载最新版本,我这里下载了glibc-2.14.tar.xz

mirror.bjtu.edu.cn/gnu/libc/gl… 这个版本

注意:下载下来的是.xz文件属于二次压缩,可以先在自己电脑解压成tar文件然后在上传,也可以直接

tar -Jxvf  glibc-2.14.tar.xz

3.解压到etc目录下

tar -xvf glibc-2.14.tar

在glibc源码目录建立构建目录,并cd进入构建目录

cd  glibc-2.14

mkdir build

cd build

../configure --prefix=/etc/glibc-2.14

make -j4 

make install

临时修改环境变量

export LD_LIBRARY_PATH=/etc/glibc-2.14/lib:$LD_LIBRARY_PATH

修改/lib64/libc.so.6的软链接来源,由之前的libc-2.12.so修改为libc-2.14.so

cd /lib64

ll /usr/local/glibc-2.14/lib/libc-2.14.so

cp /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/

unlink /lib64/libc.so.6

如果上面删除命令执行后,导致该机器的很多shell命令无法执行,甚至于机器无法登录,报错如下:

error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory  

在这里插入图片描述

注意:千万不要关闭当前的终端窗口,因为此时机器可能无法登录了,只能在当前终端窗口下进行紧急修复:

ldconfig

然后做/lib64/libc.so.6新的软链接,软链接到libc-2.14.so

ln -s libc-2.14.so /lib64/libc.so.6

ll libc.so.6

查看系统glibc支持的版本

strings /lib64/libc.so.6 |grep GLIBC

image.png