无法安装 MySQL - libaio.so.1:无法打开共享对象文件:没有此文件或目录 - 持久性实时安装

无法安装 MySQL - libaio.so.1:无法打开共享对象文件:没有此文件或目录 - 持久性实时安装

我决定注册 askubuntu.com,因为我真的需要专家的建议:我使用 mkusb 永久安装了 Ubuntu 16.10 USB Live,因为我想拥有一个便携式开发环境。一切进展顺利,我现在正在用那个 Live 写作。

现在的问题是:我设法安装了 apache2,但经过几个小时在网络上搜索,也在这个网站上搜索,我仍然无法正确安装 MySQL 服务器。重新执行安装多次后,我仍然收到此错误:

 Setting up mysql-server-5.7 (5.7.17-0ubuntu0.16.10.1) ...
ERROR: Unable to start MySQL server:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
Please take a look at https://wiki.debian.org/Teams/MySQL/FAQ for tips on fixing common upgrade issues.
Once the problem is resolved, run apt-get --fix-broken install to retry.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 127
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                          Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

如果我跑

sudo mysqld --initialize

终端仍然报告

mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

所以我想搜索这个“libaio.so.1”,最后我安装了“libaio1”和“libaio-dev”库(看起来是一样的)。然而,即使正确安装了这些库,结果也没有改变。

这是因为我使用了 LiveUSB 吗?

我真的希望你能帮助我。对于这个问题中可能出现的任何错误,我提前表示歉意。谢谢。

答案1

经过几个小时的研究,我发现问题不在于 LiveUSB 或库本身。问题在于 AppArmor,它阻止 MySQL 使用该库。所以我禁用了它:

sudo /etc/init.d/apparmor stop
sudo /etc/init.d/apparmor teardown
sudo update-rc.d -f apparmor remove

我用一种不太正统的方法,完全删除了 AppArmor,以防止将来出现以下问题:

sudo apt-get purge apparmor

然后我卸载并重新安装了 MySQL 服务器,一切顺利。一切正常!

答案2

对于不想清除 apparmor 的人来说,这个对我有用

sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
sudo systemctl start mariadb

相关内容