MySQL启动时出现“error while loading shared libraries: libncurses.so.5: cannot open shared object file”的问题,通常是由于缺少某些依赖库引起的。这个问题可以通过以下步骤解决:
- 安装缺失的库文件
首先,你需要安装缺失的库文件。在大多数Linux发行版中,你可以使用包管理器来安装。以下是在不同发行版上安装缺失库文件的命令:
- Ubuntu/Debian:
sudo apt-get updatesudo apt-get install libncurses5-dev
- CentOS/Fedora:
sudo yum install ncurses-devel
- Arch Linux:
sudo pacman -Sy ncurses
- 重新编译MySQL
如果你已经安装了MySQL,但是仍然遇到这个问题,那么可能是因为MySQL在编译时没有正确链接到这些库文件。你可以尝试重新编译MySQL来解决这个问题。首先,你需要卸载已安装的MySQL,然后重新下载源码并按照以下步骤进行编译和安装:
- 下载MySQL源码包,解压到指定目录。
- 配置编译选项。你需要确保包含了正确的库文件路径。在终端中执行以下命令:
cmake -DWITH_LIBWRAP=OFF -DWITH_SYSV_IPC=OFF -DWITH_INNOBASE_STORAGE_ENGINE=ON -DWITH_ARCHIVE_STORAGE_ENGINE=ON -DWITH_BLACKHOLE_STORAGE_ENGINE=ON -DWITH_READLINE=ON -DWITH_SSL=ON -DCURSES_LIBRARY=/usr/lib/libcurses.a -DCURSES_INCLUDE_PATH=/usr/include ..
注意:上述命令中的
/usr/lib/libcurses.a和/usr/include应替换为你系统中实际的库文件路径。你可以使用find命令来查找这些路径。例如:find /usr -name libncurses.so*和find /usr -name curses.h。 - 编译和安装。在终端中执行以下命令:
make && sudo make install
- 检查环境变量
如果以上步骤都没有解决问题,那么可能是环境变量设置不正确导致的。确保LD_LIBRARY_PATH环境变量包含了MySQL库文件所在的目录。你可以通过以下命令来设置环境变量:
- 在bash shell中,将以下行添加到你的
.bashrc或.bash_profile文件中(根据你使用的shell类型选择):bash export LD_LIBRARY_PATH=/path/to/mysql/lib:$LD_LIBRARY_PATH替换/path/to/mysql/lib为你的MySQL库文件所在的路径。然后运行source ~/.bashrc(或相应的配置文件)使更改生效。如果你不确定MySQL库文件所在的路径,可以使用find命令来查找。例如:find / -name libmysqlclient.so*。这将列出所有名为libmysqlclient.so*的文件,你可以选择其中一个作为MySQL库文件的路径。确保选择正确的版本和架构匹配你的MySQL安装。
解决一、联网状态或者有yum源可以直接安装缺失的包文件:
yum install libncurses* -y
再试就可以了

解决二、 离线的话
cp /lib64/libncurses.so.6 /lib64/libncurses.so.5 或者 添加软连接 ln -s /lib64/libncurses.so.6 /lib64/libncurses.so.5
还有可能出现如下问题:
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
使用root用户:
cp /lib64/libtinfo.so.6 /lib64/libtinfo.so.5 或 ln -s /lib64/libtinfo.so.6 /lib64/libtinfo.so.5
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/317082.html