我遇到了以下问题:
-I 添加 mysql 官方存储库
-安装 mysql-server 包,版本 8
-Error 导致安装无法结束。错误表示没有 libpthread.so.0,并显示“没有此文件或目录”错误。
我已经在谷歌上搜索答案好几个小时了,最后决定来这里......但是因为我设法通过阅读 mysql-server vesion 5.7 的类似问题解决了它,但使用了 libaio.1 文件,所以请参阅下面针对我的情况的答案,希望对您有所帮助。
答案1
因此,就我的情况而言,问题不是 libpthread.so.0 文件;它存在(在 中/lib/x86_64-linux-gnu/
)。实际问题是 Apparmor,我对此并不了解。它是一种充当某种内部防火墙的服务;它不会阻止网络连接,而是阻止应用程序在系统中执行操作(或者这是我的印象)... 错误没有提到任何与 apparmor 有关的事情;这就是为什么它更难追踪的原因。
解决方案步骤
清除(或者删除,如果您想保留数据库)所有 MySQL 包以重新重复安装:
sudo apt purge "mysql*"
自动删除包
sudo apt autoremove
停止 apparmor 服务
sudo systemctl stop apparmor
让 apparmor 放弃其配置文件(我认为使用 stop 就足够了,但对我来说还不够。使用systemctl
stop 不起作用)
sudo service apparmor teardown
重新安装 mysql 服务器
sudo apt install mysql-server
安装 apparmor-utils,在 apparmor 中为 MySQL 创建配置文件,允许 MySQL 运行
sudo apt install apparmor-utils
检查 mysql-server 的状态(必须处于活动(运行)状态)
sudo systemctl status mysql
在 apparmor 中为 MySQL 生成配置文件
sudo aa-genprof mysql
在另一个终端运行 MySQL(输入 root 密码)
mysql -u root -p
当 apparmor 在另一个终端生成配置文件时,在 MySQL 中执行操作
mysql> CREATE DATABASE fooDB
切换到另一个终端并按下s(提示符告诉你这是“扫描”)
按照你认为合适的方式对 apparmor 中的策略说“是”(我猜所有适用于 mysql 的策略都是这样),按“a”表示允许
按下f完成 apparmor 配置文件
重新启动 apparmor 服务
sudo systemctl start apparmor
检查是否仍然可以在另一个终端中使用 MySQL
mysql>exit
mysql -u root -p
如果一切顺利,您可以从命令行使用 MySQL。