登录mysqlpxc报错找不到库文件libreadline.so.7

一、环境说明:

本博文的演示环境和上篇博文一致
https://blog.51cto.com/wujianwei/2374588

1.1简述:

基于上篇博文,为了部署mysqlpxc集群环境,需要开启3个vmware虚拟机实例来部署3个mysqlpxc实例。
第一篇博文中在初始化mysqlpxc实例后,登录实例时,报错提示:

[[email protected] local]# /usr/local/mysqlpxc/bin/mysql -uroot -p
 mysql: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory
[[email protected] local]# ldd /usr/local/mysqlpxc/bin/mysql
ldd: ./mysql: not regular file
[[email protected] local]# ldd /usr/bin/mysql
    linux-vdso.so.1 =>  (0x00007ffd38da9000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f91bc012000)
    libreadline.so.6 => not found

找不到库文件 libreadline.so.6,出现这样的问题主要是当时自己在上篇博文的环境中卸载了 readline-6.2-10.el7.x86_64 这个文件导致的找不到 libreadline.so.6 库文件

[[email protected] ~]# rpm -qa|grep readline-6.2-10.el7.x86_64
readline-6.2-10.el7.x86_64
[[email protected] ~]# rpm -e --nodeps readline-6.2-10.el7.x86_64 

于是重新安装 yum install -y readline-devel readline

[[email protected] local]# rpm -qa|grep readline*
readline-devel-6.2-10.el7.x86_64
readline-6.2-10.el7.x86_64

到此处第一篇博文找不到libreadline.so.6库文件的问题才得以解决。

二、解决libreadline.so.7找不到的问题

接下来才是本博文要重点阐述的问题。
当然此问题的引出还是和上一篇的博文分不开的。

2.1环境简单说明:

vmware 虚拟机,系统centos7.2,mysqlpxc 版本5.7.24,二进制版本安装。firewalld 和iptables关闭,selinux关闭。单台虚拟机安装单实例mysqlpxc服务。初始化mysqlpxc 和启动mysqlpxc都是参照上一篇博文https://blog.51cto.com/wujianwei/2374588成功部署。
但是在登录mysqlpxc实例时,依旧报错如下:

[[email protected] data]# /usr/local/mysqlpxc/bin/mysql -uroot -p
/usr/local/mysqlpxc/bin/mysql: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory
[[email protected] mysql3308]# ldd /usr/local/mysqlpxc/bin/mysql|grep ‘not found‘
    libreadline.so.7 => not found
[[email protected] mysql3308]# find / -name ‘libreadline.so.7‘
[[email protected] mysql3308]#
[[email protected] mysql3308]# rpm -qa|grep readline*
readline-6.2-9.el7.x86_64

于是换了一种思路来解决此问题。不再采用上篇博文的方式。

2.2 解决过程:

首先尝试 yum install -y readline-devel readline,本以为可以解决然而并无卵用,依然报错

[[email protected] mysql3308]# yum install -y readline-devel readline
[[email protected] mysql3308]# rpm -qa|grep readline*
readline-devel-6.2-10.el7.x86_64
readline-6.2-10.el7.x86_64
[[email protected] mysql3308]#  /usr/local/mysqlpxc/bin/mysql -uroot -p‘,pL*O3dLkWk)‘
/usr/local/mysqlpxc/bin/mysql: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory

[[email protected] mysql3308]# ldd /usr/local/mysqlpxc/bin/mysql|grep ‘not found‘
    libreadline.so.7 => not found

于是换了一种思路,尝试×××器上存在的libreadline.so 库文件有哪些?

    [[email protected] mysql3308]# find / -name ‘libreadline.so*‘
/usr/lib64/libreadline.so.6.2
/usr/lib64/libreadline.so
/usr/lib64/libreadline.so.6

[[email protected] mysql3308]# ll /usr/lib64/libreadline.so.6
lrwxrwxrwx 1 root root 18 Feb 24 09:33 /usr/lib64/libreadline.so.6 -> libreadline.so.6.2
[[email protected] mysql3308]# ll /usr/lib64/libreadline.so.6.2
-rwxr-xr-x 1 root root 285240 Aug  2  2017 /usr/lib64/libreadline.so.6.2

发现源文件是libreadline.so.6.2 ,而libreadline.so.6 这个文件为源文件libreadline.so.6.2创建的软连接

根据下面的库文件的指向,断定后面的文件应该都是源库文件的软连接,而libreadline.so.7 => not found 提示找不到软连接文件的位置,于是猜测要是根据原库文件把这个找不到的软连接文件创建出来,会是一个什么样的效果呢??

[[email protected] mysql3308]#  ldd /usr/local/mysqlpxc/bin/mysql
    linux-vdso.so.1 =>  (0x00007ffc45bdf000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6e54cf4000)
    libreadline.so.7 => not found
    libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f6e54acc000)
    libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f6e548a2000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f6e5468c000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f6e54483000)
    libatomic.so.1 => /lib64/libatomic.so.1 (0x00007f6e5427b000)
    libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f6e5400d000)
    libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f6e53b89000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f6e53985000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f6e53603000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f6e53300000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6e530ea000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f6e52d29000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f6e554ff000)

于是根据源库文件libreadline.so.6.2 把libreadline.so.7要找的软连接文件创建出来


    [[email protected] mysql3308]# ln -sv /usr/lib64/libreadline.so.6.2 /usr/lib64/libreadline.so.7
/usr/lib64/libreadline.so.7 -> /usr/lib64/libreadline.so.6.2

    [[email protected] mysql3308]# ll /usr/lib64/libreadline.so.7
lrwxrwxrwx 1 root root 29 Feb 24 09:46 /usr/lib64/libreadline.so.7 -> /usr/lib64/libreadline.so.6.2
[[email protected] mysql3308]# find / -name ‘libreadline.so*‘
/usr/lib64/libreadline.so.7
/usr/lib64/libreadline.so.6.2
/usr/lib64/libreadline.so
/usr/lib64/libreadline.so.6

检测如下:发现不在报错,问题解决。

[[email protected] mysql3308]# ldd /usr/local/mysqlpxc/bin/mysql
    linux-vdso.so.1 =>  (0x00007fffbeb64000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9cef24a000)
    libreadline.so.7 => /lib64/libreadline.so.7 (0x00007f9cef004000)
    libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f9ceeddc000)
    libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f9ceebb2000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f9cee99c000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f9cee793000)
    libatomic.so.1 => /lib64/libatomic.so.1 (0x00007f9cee58b000)
    libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f9cee31d000)
    libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f9cede99000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f9cedc95000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f9ced913000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f9ced610000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f9ced3fa000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f9ced039000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f9cefa55000)
[[email protected] mysql3308]#  /usr/local/mysqlpxc/bin/mysql -uroot -p‘,pL*O3dLkWk)‘
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)
[[email protected] mysql3308]# ldd /usr/local/mysqlpxc/bin/mysql 

总结:发现解决此问题简单了不少。遇到问题一定要先看下报错,做下简单的分析,不要盲目的直接google和百度。要有针对性的解决问题

原文地址:https://blog.51cto.com/wujianwei/2374900

时间: 2024-08-19 06:27:17

登录mysqlpxc报错找不到库文件libreadline.so.7的相关文章

msyql 启动报错 找不到pid 文件

安装完mysql 启动mysql 数据库 报错 Starting MySQL.The server quit without updating PID file (/app/mysql/mysql/data/mysqld.pid).[FAILED]Starting MySQL.The server quit without updating PID file (/app/mysql/mysql/data/mysqld.pid).[FAILED] 查看报错日志 2017-07-11T02:23:0

二进制安装mysql5.6.39报错找不到libnuma.so.1库文件

二进制安装mysql5.6.39初始化时报错如下: [[email protected] scripts]# ./mysql_install_db --datadir=/data/mysql/data --basedir=/usr/local/mysql --user=mysql --explicit_defaults_for_timestamp Installing MySQL system tables.../usr/local/mysql/bin/mysqld: error while l

.map文件的作用以及在chorme下会报错找不到jquery-1.10.2.min.map文件,404 的原因

source map文件是js文件压缩后,文件的变量名替换对应.变量所在位置等元信息数据文件,一般这种文件和min.js主文件放在同一个目录下. 比如压缩后原变量是map,压缩后通过变量替换规则可能会被替换成a,这时source map文件会记录下这个mapping的信息,这样的好处就是说,在调试的时候,如果有一些JS报错,那么浏览器会通过解析这个map文件来重新merge压缩后的js,使开发者可以用未压缩前的代码来调试,这样会给我们带来很大的方便! 而这种还原性调试功能,目前只有chorme才

linux上项目报错找不到主机名解决办法

项目报错找不到主机名解决办法 有时候我们的项目在本地运行没问题,但部署到linux服务器上就出错了. 报错:java.net.UnknownHostException: 主机名: 主机名  找不到主机名. 解决方法: 修改服务器上/etc/hosts文件 127.0.0.1  localhost  localhost.localdomain 添加所需的主机名称 或者 127.0.0.1  localhost  localhost.localdomain 127.0.0.1  添加所需的主机名称

macOS VMWare Fusion报错”找不到可以连接的有效对等进程”的解决方案

macOS VMWare Fusion报错"找不到可以连接的有效对等进程"的解决方案 我的是macOS 10,默认情况下不允许未知身份的软件安装 默认情况,如下图所示: 解决办法: sudo spctl --master-disable 这样就开启了允许安装『任何来源』的配置 这样就不会拦截软件的安装,而导致错误提示 原文地址:https://www.cnblogs.com/timxgb/p/9723152.html

ssh登录locale报错:cannot change locale (zh_CN.UTF-8): No such file or directory

一.登录ssh报错: Last login: Tue Apr 23 03:42:01 2019 from 172.28.146.109 -bash: warning: setlocale: LC_ALL: cannot change locale (en_CN.UTF-8): No such file or directory -bash: warning: setlocale: LC_ALL: cannot change locale (en_CN.UTF-8) -bash: warning:

附加数据库报错:无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问。)"

今天在附加数据库的时候出现如图报错信息: 无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问.)"错信息如图:(是不是远程服务器数据库附加出现只读那个情况,也可以这样解决??,经测试,是这样的,不过远的用户是user,改成完全控制允许) 首先,我的数据库安装根目录和附加的数据库不是同一个目录,在安装数据库的时候根目录是默认的,为C盘下的目录,而我要附加的数据库的目录为E盘下,所以:解决方案一:使用windows账户登进,将被附加的数据库移植到根目录下,如图:

FFmpeg编译找不到库文件

在编译FFmpeg的时候,用./configure 进行配置,经常会出现找不到库文件的情况,原因大概就两个: 1.没有安装库文件或者安装的库文件版本不对 2.FFmpeg没有找到库文件 前者的问题好解决,只要安装相应的库就好了,但是安装好相应的库以后,一般还会掉入后者那个坑. 后者要解决也很简单,只要告诉FFmpeg你的库目录就好,怎么告诉它? 在./configure 配置的时候,有几个参数 --extra-cflags --extra-ldflags --extra-cxxflags 这几个

Sphinx/Coreseek 4.1 执行 buildconf.sh 报错,无法生成configure文件

参考的网址: http://blog.csdn.net/jcjc918/article/details/39032689 错误现象: 执行 buildconf.sh 报错,无法生成configure文件 报错的代码 automake: warnings are treated as errors /usr/share/automake-1.13/am/library.am: warning: 'libstemmer.a': linking libraries using a non-POSIX