缺少服务 - mysql:无法识别的服务

缺少服务 - mysql:无法识别的服务

我正在运行 Ubuntu20.04.6在 WSL 上,在使用命令启动 mysql-server 时遇到了问题sudo service mysql start,该命令返回mysqld: unrecognized service(与 相同的结果mysqld)。

背景是这样的,今天早上我意外地升级了而不是更新了我的环境,包括 MySQL,升级到了我的编辑器(以及我尝试过的其他编辑器)目前不支持的版本(8.0.35)。我尝试降级到较早的版本,但现在无论如何,我都无法重新启动并运行 MySQL。我一直在浏览这里和 Stackoverflow 上的帖子,但目前还没有成功。

我不确定这是否是权限问题或配置问题,但请参阅下面我采取的一些最新步骤:

卸载时使用: sudo apt-get remove --purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-* sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql* /var/run/mysqld

清理一下: sudo apt-get autoremove sudo apt-get autoclean sudo apt-get update

尝试安装旧版本和最新版本的 MySQL sudo apt-get install mysql-server-8.0=8.0.19-0ubuntu5 mysql-client-8.0=8.0.19-0ubuntu5 sudo sudo apt-get install mysql-server mysql-client:。

如前所述,在此之后,当我尝试时,sudo service mysql start我得到了mysqld: unrecognized service

如果它只是需要注册,我尝试通过 systemctl 注册 mysql 和 mysqld,但没有成功,同时在 /etc/init.d/ 中创建一个名为 mysql_custom 的自定义服务,也无济于事。

运行mysql --version返回:“Ver 8.0.35 for Linux on x86_64 (MySQL Community Server - GPL)”,表明它至少已安装,并且正在运行mysqlmysqld分别返回以下错误:

  • mysql:2023-12-31T18:12:37.448254Z 0 [警告] [MY-010091] [服务器] 无法创建测试文件 /var/lib/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
    2023-12-31T18:12:37.448300Z 0 [系统] [MY-010116] [服务器] /usr/sbin/mysqld(mysqld 8.0.35)作为进程 3855 启动
    2023-12-31T18:12:37.450166Z 0 [警告] [MY-010091] [服务器] 无法创建测试文件 /var/lib/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
    2023-12-31T18:12:37.450172Z 0 [警告] [MY-010159] [服务器] 设置 lower_case_table_names=2,因为 /var/lib/mysql/ 的文件系统不区分大小写
    2023-12-31T18:12:37.450185Z 0 [错误] [MY-013276] [服务器] 无法将 datadir 设置为 '/var/lib/mysql/' (OS errno: 13 - 权限被拒绝)
    2023-12-31T18:12:37.450245Z 0 [错误] [MY-010119] [服务器] 正在中止
    2023-12-31T18:12:37.450320Z 0 [系统] [MY-010910] [服务器] /usr/sbin/mysqld:关闭完成(mysqld 8.0.35)MySQL 社区服务器 - GPL。

  • mysqld:错误 2002(HY000):无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器(2)

从现在开始,我真的完全不知道下一步该怎么做,所以真的希望这里有人经历过这种事情或类似的事情可以提供帮助。如果您需要更多信息,或者需要我尝试运行任何命令,请告诉我。

答案1

现在问题已经解决,看来php7.4-mysql php8.2-mysql安装的软件包是导致该问题的原因,尽管我不能 100% 确定是否如此。

以下内容解决了该问题:

查找所有已安装的包含单词“mysql”的软件包:apt list --installed | grep mysql

使用以下命令删除所有列出的包:sudo apt-get remove --purge your-mysql-packages,,sudo apt-get autoremovesudo apt-get autoremove

重新安装 mysql 和 php 包:sudo apt-get install mysql-server php8.2-mysql

从这里开始,mysql 服务被识别,我能够重新设置一切。我想分享一下,以防其他人遇到与我相同的设置时遇到类似的问题。

相关内容