本文主要是介绍启动异常 libstdc++.so.6: version `GLIBCXX_*' not found,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
启动异常 libstdc++.so.6: version `GLIBCXX_*’ not found
[root@localhost mysql-5.7.22]# ./startup.sh
/usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/mysql/bin/my_print_defaults)
/usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/local/mysql/bin/my_print_defaults)
/usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/mysql/bin/my_print_defaults)
Starting MySQL./usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/mysql/bin/my_print_defaults)
/usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/local/mysql/bin/my_print_defaults)
/usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/mysql/bin/my_print_defaults)
/usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/mysql/bin/my_print_defaults)
/usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/local/mysql/bin/my_print_defaults)
/usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/mysql/bin/my_print_defaults)
The server quit without updating PID file (/usr/local/mysql[失败]localhost.localdomain.pid).
异常原因:根据异常信息,我们可以看到在路径/lib64/libstdc++.so.6
中找不到GLIBCXX_3.4.20
,我查了一下,果然没有GLIBCXX_3.4.20
:
[root@localhost mysql-5.7.22]# strings /lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
然后我们全局查找libstdc++.so.6
这个文件,果然找到了一下,过滤掉docker以后,从剩下的路径下找到有GLIBCXX_3.4.20
的文件,如下:
[root@localhost mysql-5.7.22]# strings /usr/local/gcc/lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
如果可以,我们替换掉原文件,命令如下:
#备份
[root@localhost mysql-5.7.22]# cp /lib64/libstdc++.so.6 /lib64/libstdc++.so.6.save
#替换
[root@localhost mysql-5.7.22]# cp /usr/local/gcc/lib64/libstdc++.so.6 /lib64/libstdc++.so.6
替换完毕后试试能不能启动,命令如下:
[root@localhost mysql-5.7.22]# ./start.sh
Starting MySQL... [ 确定 ]
果然可以了,此处我使用的自己写的启动命令,你们也可以通过systemctl start mysql
或者 service start mysql
进行启动。
这篇关于启动异常 libstdc++.so.6: version `GLIBCXX_*' not found的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!