MySQL 5.7没有目录,使用HOME = /登录


16

很抱歉,如果已经问过这个问题,但找不到这个(可能很小)问题的解决方案:

我刚刚在14.04服务器上重新安装了mysql-server 5.7。每次启动MySQL服务时,都会出现此错误:

root@xxx:/etc/mysql# service mysql restart
 * Stopping MySQL Community Server 5.7.11
...
 * MySQL Community Server 5.7.11 is stopped
 * Re-starting MySQL Community Server 5.7.11
No directory, logging in with HOME=/
..
 * MySQL Community Server 5.7.11 is started

这意味着什么?我是否必须为用户“ mysql”设置主目录?(如果是这样,最好的选择是什么?/ home / mysql ??)现在是/不存在:

mysql:x:110:106:MySQL Server,,,:/nonexistent:/bin/false

但是我有另一台具有相同/不存在的机器,它没有显示任何错误...


1
/ var / log / mysql ;-)参见:askubuntu.com/questions/539440/…–
Rinzwind

好的,就我而言,它似乎已开始运行,并且似乎工作正常,只是显示了该通知
the_nuts 16/02/23

Answers:


31

有相同的问题来摆脱这个错误,我做了以下

  1. 停止MYSQL服务:

    sudo service mysql stop

  2. 将mysql的主目录从不存在更改为应该存在的原始目录:

    sudo usermod -d /var/lib/mysql/ mysql

现在,使用以下命令再次启动mysql服务器:

sudo service mysql start

错误消息已消失。为何发生这种情况仍然未知。


1
可能需要解决,但我不同意这一点。/ home /适用于用户。并非用于为虚拟用户创建场所,而这些场所是安全性/权限/其他要求的。建议/ home / mysql并创建一个实际的mysql用户的人员应受到严厉谴责
Rinzwind '16

/ var / lib o / var / log?无论如何,该目录似乎没有任何数据填充
the_nuts

2
是的,这是一种解决方法,当您找到解决方案时告诉我。
Abdul Hayee '16

1
根据这篇文章,Red Hat已将mysql主目录设置为/var/lib/mysql。因此,这似乎还可以
。...– ostrokach

2
对于它的价值,当我在Windows WSL中运行mysql时出现此错误。在Windows上退出mysqld.exe后,错误停止发生。Windows进程声明了端口3306的所有权。
Azeirah

0

我会进一步建议一个永久性解​​决方案,如果它总是从与我假设相同的目录中运行,为什么不应该在/ etc / passwd中编辑用户mysql:

mysql:x:106:111:MySQL Server,,,:/var/lib/mysql/:/bin/false
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.