Ubuntu24.04初始化MySQL报错 error while loading shared libraries: libaio.so.1
问题一:libaio1不存在
# 提示libaio1不存在
[root@zabbix-mysql-master.example.com x86_64-linux-gnu]#apt install numactl libaio1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package libaio1 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'libaio1' has no installation candidate
[root@zabbix-mysql-master.example.com x86_64-linux-gnu]#
# 24.04的包名变了
[root@zabbix-mysql-master.example.com x86_64-linux-gnu]#apt search libaio
Sorting... Done
Full Text Search... Done
libaio-dev/noble,now 0.3.113-6build1 amd64 [installed]
Linux kernel AIO access library - development files
libaio1t64/noble,now 0.3.113-6build1 amd64 [installed]
Linux kernel AIO access library - shared library
[root@zabbix-mysql-master.example.com x86_64-linux-gnu]#
下面是22.04的搜索结果
问题二:初始化失败
安装完成后进行MySQL初始化,还是报错。
# find / -name libaio.so.1 没有任何结果
[root@zabbix-mysql-master.example.com x86_64-linux-gnu]#find / -name libaio.so.1
在22.04进行了相同的搜索操作,有结果的
于是进入到24.04的目录进行对比,发现并没有libaio.so.1
# 对Ubuntu24.04的libaio.so.1t64.0.2进行软链接
[root@ubuntu2204 x86_64-linux-gnu]#ln -s libaio.so.1t64.0.2 libaio.so.1
然后清空掉数据目录下的日志文件,重新初始化,成功。
问题三:客户端连接失败
初始化、启动都没问题,本地客户端连接时又报错了。
搜索发现,这个库的名字不叫libncures.so.6而是叫ibncursesw.so.6,继续创建软链接
[root@zabbix-mysql-master.example.com x86_64-linux-gnu]#ln -s libncursesw.so.6.4 libncurses.so.6
其实这个问题是缺少一个依赖导致的,libncures6。在安装的时候通过apt install libncurses6
,会自动生成软链接的,并且跟我们手动创建的软链接不是同一个,还是有区别的。
总结:正确安装
apt install numactl libaio1t64 libncurses6 -y
ln -s libaio.so.1t64.0.2 libaio.so.1