Назад | Перейти на главную страницу

Ошибки разрешения MySQL

Кажется, что на машине Ubuntu 14.04 пользователь mysql не может получить доступ ни к чему. Он не пишет журналы и не читает файлы. Свидетель:

 - bruno():mysql$ cat /etc/passwd | grep mysql
mysql:x:116:127:MySQL Server,,,:/nonexistent:/bin/false

 - bruno():mysql$ sudo mysql_install_db
Installing MySQL system tables...
140818 18:16:50 [ERROR] Can't read from messagefile '/usr/share/mysql/english/errmsg.sys'
140818 18:16:50 [ERROR] Aborting
140818 18:16:50 [Note] 

Installation of system tables failed!  Examine the logs in
/var/lib/mysql for more information.

...boilerplate trimmed...

 - bruno():mysql$ ls -la /usr/share/mysql/english/errmsg.sys
-rw-r--r-- 1 root root 59535 Jul 29 13:40 /usr/share/mysql/english/errmsg.sys
 - bruno():mysql$ wc -l /usr/share/mysql/english/errmsg.sys
16 /usr/share/mysql/english/errmsg.sys

Здесь мы видели, что mysql не могу прочитать /usr/share/mysql/english/errmsg.sys даже если разрешения открыты для его чтения, и на самом деле обычный пользователь, входящий в систему, может читать файл (с wc). Кроме того, MySQL не ведет журналы:

 - bruno():mysql$ ls -la /var/log/mysql
total 8
drwxr-s---  2 mysql adm    4096 Aug 18 16:10 .
drwxrwxr-x 18 root  syslog 4096 Aug 18 16:10 ..

Что может заставить этого пользователя не иметь доступа ни к чему? Что я могу с этим поделать?

mysql_install_db --no-defaults --basedir=<your base dir> --datadir=<your data dir> --language=<your language dir such as /usr/share/mysql/english/> --lc-messages-dir=<location>

Попробуйте запустить, как указано выше, и убедитесь, что mysql имеет правильные разрешения для каждой папки. Ее ссылка https://dev.mysql.com/doc/refman/5.7/en/mysql-install-db.html и https://dev.mysql.com/doc/refman/5.7/en/error-message-language.html