error while loading shared libra
2022-06-01 本文已影响0人
前浪浪奔浪流
今天做定时备份数据库,报错如下
crond: /usr/sbin/sendmail: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
mysql8.0是二进制包安装的,位置是/usr/local/mysql8下,然后我看了下/usr/local/mysql8/lib/下是没有libmysqlclient.so.18这个文件的.
这时候你可以在其他安装了mysql数据库的服务器上查找下这个文件
# find / -name libmysqlclient.so.18
/usr/lib64/mysql/libmysqlclient.so.18
ll /usr/lib64/mysql/
总用量 19116
lrwxrwxrwx 1 root root 20 2月 7 2021 libmysqlclient_r.so.18 -> libmysqlclient.so.18
lrwxrwxrwx 1 root root 24 2月 7 2021 libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0
lrwxrwxrwx 1 root root 24 2月 7 2021 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x 1 root root 9578168 6月 10 2019 libmysqlclient.so.18.1.0
lrwxrwxrwx 1 root root 25 2月 7 2021 libmysqlclient.so.20 -> libmysqlclient.so.20.3.14
-rwxr-xr-x 1 root root 9989088 6月 10 2019 libmysqlclient.so.20.3.14
drwxr-xr-x 4 root root 28 2月 7 2021 mecab
drwxr-xr-x. 3 root root 4096 2月 7 2021 plugin
此时将 libmysqlclient.so.18.1.0 这个文件下载下来然后上传到缺少libmysqlclient.so.18文件的服务器上的/usr/local/mysql8/lib/目录下,然后记得给执行权限和做本地软连接
# chmod +x libmysqlclient.so.18.1.0
在本地创建文件软连接
# ln -s libmysqlclient.so.18.1.0 libmysqlclient.so.18
# chown mysql:mysql libmysqlclient.so.18*
ll
总用量 145904
-rw-r--r-- 1 mysql mysql 106474328 12月 18 01:50 libmysqlclient.a
lrwxrwxrwx 1 mysql mysql 20 12月 18 02:28 libmysqlclient.so -> libmysqlclient.so.21
lrwxrwxrwx 1 root root 24 6月 1 11:06 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x 1 mysql mysql 9578168 6月 1 11:04 libmysqlclient.so.18.1.0
lrwxrwxrwx 1 mysql mysql 25 12月 18 02:28 libmysqlclient.so.21 -> libmysqlclient.so.21.2.28
-rwxr-xr-x 1 mysql mysql 33294176 12月 18 01:49 libmysqlclient.so.21.2.28
-rw-r--r-- 1 mysql mysql 44630 12月 18 01:46 libmysqlservices.a
drwxr-xr-x 4 mysql mysql 28 12月 18 02:28 mecab
drwxr-xr-x 2 mysql mysql 28 12月 18 02:28 pkgconfig
drwxr-xr-x 3 mysql mysql 4096 12月 18 02:28 plugin
drwxr-xr-x 4 mysql mysql 4096 12月 18 02:28 private
然后修改下/etc/ld.so.conf文件
# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
在/etc/ld.so.conf.d/下创建mysql.conf文件并加入/usr/local/mysql8/lib/
# cat /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql8/lib/
再运行:/sbin/ldconfig -v 更新一下配置即可。
/sbin/ldconfig -v
这个时候报新的错误
crond: sendmail: fatal: parameter inet_interfaces: no local interface found for ::1
需要修改 /etc/postfix/main.cf配置文件,并重启postfix服务即可
vim /etc/postfix/main.cf
发现配置为:
inet_interfaces = localhost
inet_protocols = all
改成:
inet_interfaces = all
inet_protocols = all
重新启动
service postfix start
参考文献:
https://blog.csdn.net/weixin_44058932/article/details/105185155
https://blog.csdn.net/zhanjianshinian/article/details/43964361