mysql libstdc .so.6_正解mysql: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib6...

事情经过:yum安装Xtrabackup工具,yum更新完成gcc,页面提示:

[work@tj-gongsi-quku lib64]$ mysql

mysql: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libstdc++.so.6)

mysql: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /usr/lib64/libstdc++.so.6)

WTF??????????????之前好好的怎么不能用了,所以建议大家平时没事别用yum安装太大的工具,少用root,多用work。

然后百度:出现一堆解决/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libstdc++.so.6)

按照教程,安装了GLIBC_2.18 发现还是不行,而且提示Segmentation fault (core dumped),吓得不行,还好最后是虚惊一场;

实际证明,这次百度教程全是搞笑的。

原因: (required by /usr/lib64/libstdc++.so.6),因为升级gcc的时候生成的动态库,替换了老版本gcc的动态库,修改回来就行。

正文:

系统centos6

用户root

(如果有按照百度教程升级GLIBC_2.14 or GLIBC_2.XX)的同学请先走第一步、第二步,没有安装高版本的GLIBC的同学直接进行第三部;

我们的目的是修改回原始的动态库;

第一步:确认动态库是否被修改

[root@tj-gongsi-quku lib64]# ll |grep libc.so.6

lrwxrwxrwx  1 root root      13 Sep 29 11:38 libc.so.6-> libc.so.6_bak

lrwxrwxrwx  1 root root      12 Jun 21 09:09 libc.so.6_bak -> libc-2.18.so

[root@tj-gongsi-quku lib64]# ll |grep libc-

-rwxr-xr-x 1 root root 1926800 Jun 21 11:56 libc-2.12.so

-rwxr-xr-x 1 root root 1926800 Jun 21 11:57 libc-2.18.so

lrwxrwxrwx 1 root root 12 Jun 21 09:09 libc.so.6_bak -> libc-2.18.so

此时的libc.so.6链接到了libc-2.18.so

正常情况下:

[root@tj-vm119-qa-webapp lib64]# ll |grep libc

-rwxr-xr-x. 1 root root 1924768 Jun 20 11:37 libc-2.12.so

lrwxrwxrwx. 1 root root 18 Jul 3 17:46 libcap-ng.so.0 -> libcap-ng.so.0.0.0

-rwxr-xr-x. 1 root root 18672 Jun 25 2011 libcap-ng.so.0.0.0

lrwxrwxrwx. 1 root root 14 Jul 3 17:45 libcap.so.2 -> libcap.so.2.16

-rwxr-xr-x. 1 root root 16600 Dec 8 2011 libcap.so.2.16

-rwxr-xr-x. 1 root root 201632 Jun 20 11:37 libcidn-2.12.so

lrwxrwxrwx. 1 root root 15 Jul 6 19:41 libcidn.so.1 -> libcidn-2.12.so

lrwxrwxrwx. 1 root root 17 Jul 6 19:42 libcom_err.so.2 -> libcom_err.so.2.1

-rwxr-xr-x. 1 root root 14664 Mar 23 2017 libcom_err.so.2.1

-rwxr-xr-x. 1 root root 40872 Jun 20 11:37 libcrypt-2.12.so

lrwxrwxrwx. 1 root root 22 Jul 3 17:46 libcryptsetup.so.1 -> libcryptsetup.so.1.1.0

-rwxr-xr-x. 1 root root 94312 Jun 22 2012 libcryptsetup.so.1.1.0

lrwxrwxrwx. 1 root root 16 Jul 6 19:41 libcrypt.so.1 -> libcrypt-2.12.so

lrwxrwxrwx. 1 root root 12 Jul 6 19:41 libc.so.6 -> libc-2.12.so

和默认版本不一样的

原因是因为之前安装教程修改了环境导致的,我现在把动态库软连接改回来;

第二步:还原libc.so.6

rm -rf libc.so.6 #删除软连接,这步执行完成后所有命令无法使用,不必惊慌这里删除的是软连接,原文件还在

LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so libc.so.6 #再用系统加载动态库执行软链接命令,链接到原来 /lib64/libc-2.12.so

此时确认动态库,发现已经还原了

[root@tj-gongsi-quku lib64]# ll |grep libc-

-rwxr-xr-x 1 root root 1926800 Jun 21 11:56 libc-2.12.so

-rwxr-xr-x 1 root root 1926800 Jun 21 11:57 libc-2.18.so

lrwxrwxrwx 1 root root 19 Sep 29 16:46 libc.so.6 -> /lib64/libc-2.12.so

再mysql一下 ,WTF??正常问题出在

required by /usr/lib64/libstdc++.so.6)

[work@tj-gongsi-quku lib64]$ mysql

mysql: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libstdc++.so.6)

mysql: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /usr/lib64/libstdc++.so.6)

第三步:还原libstdc++.so.6

libstdc++.so.6

确认libstdc++.so.6链接的目标文件

[work@tj-gongsi-quku lib64]$ ll |grep libstdc++.so.6

lrwxrwxrwx   1 root         root       30 Sep 29 16:53 libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.bak

lrwxrwxrwx   1 root         root       19 Jun 21 09:09 libstdc++.so.6.bak -> libstdc++.so.6.0.19

正常情况下

[work@tj-gongsi-quku lib64]$ ll |grep libstdc++.so.6

lrwxrwxrwx   1 root         root       30 Sep 29 16:53 libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.13

也就是说默认的c++动态库被改了,那么改回来

这里直接删除不用担心命令用了,因为linux是c写的~

rm -rf libstdc++.so.6

ln -s /usr/lib64/libstdc++.so.6.0.13 libstdc++.so.6

再查看一下

[work@tj-gongsi-quku lib64]$ ll |grep libstdc++.so.6

lrwxrwxrwx 1 root root 30 Sep 29 16:53 libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.13

-rwxr-xr-x 1 root root 987096 Mar 22 2017 libstdc++.so.6.0.13

-rwxr-xr-x 1 root root 6431548 Dec 16 2016 libstdc++.so.6.0.19

lrwxrwxrwx 1 root root 19 Jun 21 09:09 libstdc++.so.6.bak -> libstdc++.so.6.0.19

已经修改回来了,mysql一下

[work@tj-gongsi-quku lib64]$ mysql

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Done!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值