下载的时候一定选对应的版本, el6 还是el7 或者其他版本,不然会出现意向不到的惊喜
比如:我刚开始的时候下载的 el7 版本的 mysql , 然后安装的时候 就会出现:
libc.so.(GLIBC_2.)(64bit) is needed by MySQL-server-5.5.-.el7.x86_64
libc.so.(GLIBC_2.)(64bit) is needed by MySQL-server-5.5.-.el7.x86_64
然后我根据这个线索,去安装了 2.14 和2.17 的 GLIBC, 但是,并没有什么用,还是会有同样的问题,差点怀疑人生!!!
GLIBC 已安装版本查看命令:
strings /lib64/libc.so.6 |grep GLIBC
升级命令:
wget http://mirror.bjtu.edu.cn/gnu/libc/glibc-2.14.tar.xz
tar xvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/usr/local/glibc-2.14 // 配置glibc并设置当前glibc-2.14安装目录
make -j4
make install
cp /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc-2.14.so
mv /lib64/libc.so. /lib64/libc.so..bak
LD_PRELOAD=/lib64/libc-2.14.so ln -s /lib64/libc-2.14.so /lib64/libc.so.
如果最后一行命令执行出错,这里有可能会出现 Segmentation fault, 可通过
LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6再改回去
同时此过程的另外一个问题:
如果修改了libc.so.6 的软连接,使用任何命令都出现了 Segmentation fault ,解决方案如下:
[root@ lib64]# LD_PRELOAD=/lib64/libc-2.15.so rm /lib64/libc.so.
rm: remove symbolic link `/lib64/libc.so.'? y
[root@ lib64]# LD_PRELOAD=/lib64/libc-2.15.so ln -s /lib64/libc-2.15.so /lib64/libc.so.