MySQLを起動すると「No directory, logging in with HOME=/」と表示される
MySQLを起動しようとすると、次のようになる。
起動は成功するが、「No directory, logging in with HOME=/」というメッセージがでている。
root@ubuntu:~# /etc/init.d/mysql start No directory, logging in with HOME=/ ...... * MySQL Community Server 5.6.20 is started
ログインする際のHOMEディレクトリが無いことを意味するメッセージのように見える。
これは一体誰のHOMEディレクトリが無いといっているのか?rootで起動を実行しているので、rootだろうか?
まず、rootのHOMEディレクトリを確認する。
root@ubuntu:~# cat /etc/passwd | grep root root:x:0:0:root:/root:/bin/bash
rootのHOMEディレクトリは/rootとして存在している。
それでは、mysqlインスタンスを起動するユーザだろうということで、/etc/mysql/my.cnfを確認して、起動ユーザを確認する。
#less /etc/mysql/my.cnf [mysqld] user = mysql
mysqlユーザで起動している。
mysqlユーザのHOMEディレクトリを確認する。
root@ubuntu:~# cat /etc/passwd | grep mysql mysql:x:117:126:MySQL Server,,,:/nonexistent:/bin/false
えええええええええええ、HOMEディレクトリが「/nonexistent」になっている。なんで?
root@ubuntu:~# mkdir /home/mysql root@ubuntu:~# chown mysql /home/mysql/ root@ubuntu:~# ls -l /home/ total 8 drwxr-xr-x 2 mysql root 4096 Sep 14 17:30 mysql drwxr-xr-x 21 rio rio 4096 Sep 14 13:07 rio root@ubuntu:~# chgrp mysql /home/mysql/ root@ubuntu:~# ls -l /home/ total 8 drwxr-xr-x 2 mysql mysql 4096 Sep 14 17:30 mysql drwxr-xr-x 21 rio rio 4096 Sep 14 13:07 rio
mysqlのHOMEディレクトリを/home/mysqlに設定する。
root@ubuntu:~# usermod -d /home/mysql/ mysql usermod: user mysql is currently used by process 6351
プロセスID6351に使用されているため変更できない。おそらくmysqldだろうが何のプロセスかを確認してプロセスをとめる。
root@ubuntu:~# ps aux | grep 6351 mysql 6351 0.0 0.0 2268 640 ? S 17:32 0:00 /bin/sh /usr/bin/mysqld_safe --skip-syslog root 6680 0.0 0.0 4680 820 pts/3 S+ 17:36 0:00 grep --color=auto 6351
やはりmysqldなので停止する。
root@ubuntu:~# /etc/init.d/mysql stop .... * MySQL Community Server 5.6.20 is stopped root@ubuntu:~# ps aux | grep 6351 root 6729 0.0 0.0 4680 820 pts/3 S+ 17:38 0:00 grep --color=auto 6351
root@ubuntu:~# usermod -d /home/mysql/ mysql
root@ubuntu:~# cat /etc/passwd | grep mysql mysql:x:117:126:MySQL Server,,,:/home/mysql/:/bin/false
mysqlを起動する。
root@ubuntu:~# /etc/init.d/mysql start
......
* MySQL Community Server 5.6.20 is started
エラーメッセージが消えた。
解決したが、どうしてこのようになったかは不明・・・。