错误日志
启动pgsql报错CXXABI_1.3.8
not found
[root@centos ~]# systemctl start postgresql-12.service
Job for postgresql-12.service failed because the control process exited with error code.
See "systemctl status postgresql-12.service" and "journalctl -xe" for details.
[root@centos ~]# journalctl -xe
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit postgresql-12.service has begun starting up.
Mar 07 11:07:25 centos.rx101 postmaster[41528]: /usr/pgsql-12/bin/postmaster: /lib64/libstdc++.so.6: version `CXXABI_1.3.8` not found (required by /lib64/libicui18n.so.60)
Mar 07 11:07:25 centos.rx101 postmaster[41528]: /usr/pgsql-12/bin/postmaster: /lib64/libstdc++.so.6: version `CXXABI_1.3.8` not found (required by /lib64/libicuuc.so.60)
Mar 07 11:07:25 centos.rx101 systemd[1]: postgresql-12.service: Main process exited, code=exited, status=1/FAILURE
Mar 07 11:07:25 centos.rx101 systemd[1]: postgresql-12.service: Failed with result 'exit-code'.
Mar 07 11:07:25 centos.rx101 systemd[1]: Failed to start PostgreSQL 12 database server.
-- Subject: Unit postgresql-12.service has failed
-- Defined-By: systemd
解决方案
- 查找
libicui18n.so.60
所在路径
[root@centos ~]# whereis libicui18n.so.60
libicui18n.so: /usr/lib64/libicui18n.so.60
3.查询系统上的libstdc++.so
[root@centos ~]# find / -name "libstdc++.so*"
/home/ccdx_bak/depends/base/libstdc++.so.6
/home/ccdx_bak/depends/base/libstdc++.so.6.0.25
/home/ccdx_20230228/depends/base/libstdc++.so.6
/home/ccdx_20230228/depends/base/libstdc++.so.6.0.25
/home/ccdx/depends/base/libstdc++.so.6
/home/ccdx/depends/base/libstdc++.so.6.0.25
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
4.查看其中一个libstdc++.so.6
是否包含CXXABI_1.3.8
[root@centos ~]# strings /home/ccdx_bak/depends/base/libstdc++.so.6 | grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_1.3.11
CXXABI_TM_1
CXXABI_FLOAT128
5.复制包含CXXABI_1.3.8
的动态库至第一步骤的根路径
[root@centos ~]# sudo cp /home/ccdx_bak/depends/base/libstdc++.so.6 /usr/lib64
6.删除原来的libstdc++.so.6
,改变软连接的指向
[root@centos ~]# cd /usr/lib64
[root@centos lib64]# sudo rm libstdc++.so.6
[root@centos lib64]# sudo ln -s libstdc++.so.6.0.19 libstdc++.so.6
[root@centos lib64]# cd