mysql: 无法识别的服务
mysql: unrecognized service
我按照说明here按照步骤在WSL上安装了mariadb。我 运行 这个
sudo service mysql start
我得到了
mysql: unrecognized service
知道如何解决这个问题吗?
您在 WSL 上使用哪个 Linux 发行版?
首先,尝试以下操作:
systemctl {start|stop|restart|status} mysql
或
service mysql {start|stop|restart|status}
管理 MySQL 服务。
原因可能如下:
错误的服务名称:
在某些 Linux 发行版中,服务被命名为 mysqld
而不是 mysql
。
检查: 运行 chkconfig --list
在您的 WSL 上并确定正确的服务名称。
文件权限问题:
请确保 /var/lib/mysql
中的文件具有 770
权限和所有权设置为 mysql
用户。
修复:
chmod -R 770 /var/lib/mysql
chgrp -R mysql /var/lib/mysql
除此之外,确保/etc/rc.d/init.d/mysqld
脚本具有修改mysqld的可执行权限。
修复:
chmod 755 /etc/rc.d/init.d/mysqld
Missing/Corrupted MySQL 服务器包:
重新安装 MySQL!
如您所见,这只是一个简单的问题,但我花了 24 小时来诊断问题。
解决方法:
我用这个命令卸载 mariadb
sudo apt-get remove --auto-remove mariadb-server
并安装 sudo apt install mysql-server
,但这会导致更多问题
安装成功mysql但无法启动
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)
所以通过删除 mariadb 的 deb 源并清除 mysql-common 然后重新安装它。
做:
sudo apt edit-sources
并查找任何包含 mariadb 的内容,例如:deb [arch=amd64,arm64,ppc64el] http://ftp.nluug.nl/db/mariadb/repo/10.3/ubuntu bionic main
在它前面加上#
注释掉它。然后 运行
sudo apt update
sudo apt purge mysql-common
sudo apt install mysql-common
之后你可以通过 sudo apt install mysql-server 正确安装 mysql-server,然后执行:
sudo apt purge mysql-server mysql-server-5.7
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-5.7 mysql-client-core-5.7
sudo rm -rfv /etc/mysql /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
最后:
sudo apt update
sudo apt install mysql-server mysql-client --fix-broken --fix-missing
参考资料:
https://askubuntu.com/questions/980314/cannot-install-mysql-server-in-ubuntu16-0-4
https://askubuntu.com/questions/763534/cannot-reinstall-mysql-server-after-its-purge
我按照说明here按照步骤在WSL上安装了mariadb。我 运行 这个
sudo service mysql start
我得到了
mysql: unrecognized service
知道如何解决这个问题吗?
您在 WSL 上使用哪个 Linux 发行版?
首先,尝试以下操作:
systemctl {start|stop|restart|status} mysql
或
service mysql {start|stop|restart|status}
管理 MySQL 服务。
原因可能如下:
错误的服务名称:
在某些 Linux 发行版中,服务被命名为
mysqld
而不是mysql
。检查: 运行
chkconfig --list
在您的 WSL 上并确定正确的服务名称。文件权限问题:
请确保
/var/lib/mysql
中的文件具有770
权限和所有权设置为mysql
用户。修复:
chmod -R 770 /var/lib/mysql chgrp -R mysql /var/lib/mysql
除此之外,确保
/etc/rc.d/init.d/mysqld
脚本具有修改mysqld的可执行权限。修复:
chmod 755 /etc/rc.d/init.d/mysqld
Missing/Corrupted MySQL 服务器包:
重新安装 MySQL!
如您所见,这只是一个简单的问题,但我花了 24 小时来诊断问题。
解决方法: 我用这个命令卸载 mariadb
sudo apt-get remove --auto-remove mariadb-server
并安装 sudo apt install mysql-server
,但这会导致更多问题
安装成功mysql但无法启动
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)
所以通过删除 mariadb 的 deb 源并清除 mysql-common 然后重新安装它。
做:
sudo apt edit-sources
并查找任何包含 mariadb 的内容,例如:deb [arch=amd64,arm64,ppc64el] http://ftp.nluug.nl/db/mariadb/repo/10.3/ubuntu bionic main
在它前面加上#
注释掉它。然后 运行
sudo apt update
sudo apt purge mysql-common
sudo apt install mysql-common
之后你可以通过 sudo apt install mysql-server 正确安装 mysql-server,然后执行:
sudo apt purge mysql-server mysql-server-5.7
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-5.7 mysql-client-core-5.7
sudo rm -rfv /etc/mysql /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
最后:
sudo apt update
sudo apt install mysql-server mysql-client --fix-broken --fix-missing
参考资料: https://askubuntu.com/questions/980314/cannot-install-mysql-server-in-ubuntu16-0-4 https://askubuntu.com/questions/763534/cannot-reinstall-mysql-server-after-its-purge