MySQL5.7在CentOStream9中安装报错
背景1:
在执行client文件时报错
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
报错码为:
警告:mysql-community-client-5.7.26-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
libncurses.so.5()(64bit) 被 mysql-community-client-5.7.26-1.el7.x86_64 需要
libtinfo.so.5()(64bit) 被 mysql-community-client-5.7.26-1.el7.x86_64 需要
检查了libncurses也安装好了:
yum install libncurses*
上次元数据过期检查:0:21:12 前,执行于 2024年04月09日 星期二 09时31分25秒。
软件包 ncurses-c++-libs-6.2-10.20210508.el9.x86_64 已安装。
软件包 ncurses-libs-6.2-10.20210508.el9.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
解决办法:
在执行client文件时在命令后面加上--force --nodeps
--force --nodeps
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm --force --nodeps
接着就可以继续按照顺序安装了
背景2:
安装好之后,在运行MySQL时报错:
[root@Changing01 mysql]# mysql -u root -p
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
或者
[root@Changing01 ~]# mysql -u root -p
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
解决方法:
问题1: 缺少libncurses.so.5
首先,我们尝试解决libncurses
库文件缺失的问题。通过以下命令可以搜索系统中已有的libncurses
版本:
执行下面的命令:
find / -name 'libncurses*'
运行之后返回
[root@Changing01 ~]# find / -name 'libncurses*'
/usr/lib64/libncursesw.so.6.2
/usr/lib64/libncurses++.so.6.2
/usr/lib64/libncurses++w.so.6
/usr/lib64/libncurses++w.so.6.2
/usr/lib64/libncurses.so.6.2
/usr/lib64/libncurses.so.6
/usr/lib64/libncursesw.so.6
/usr/lib64/libncurses++.so.6
可以看到,系统已安装的是libncurses.so.6
版本。解决方法是创建一个指向高版本库文件的符号链接(软链接),模拟出libncurses.so.5
:
然后输入下面代码:
ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
问题2:缺少libtinfo.so.5
解决了libncurses.so.5
的问题后,再次尝试启动MySQL时,出现了新的错误,关于libtinfo.so.5
文件缺失。我们同样通过搜索,查看系统中是否存在libtinfo
的其他版本:
find / -name 'libtinfo.so*'
同前面的处理方法,创建一个指向libtinfo.so.6
的符号链接来解决问题:
ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
最后运行MySQL,能正常运行:
问题解决!!
背景2:原文章