MySQL general_log не может быть включен. Что я делаю неправильно? - PullRequest
0 голосов
/ 04 января 2019

Я на Ubuntu 18.04 с MySQL 5.7.24 и пытаюсь включить general_log как , описанное здесь .

Итак, в моем /etc/mysql/my.cnf я добавил это:

general_log = on
general_log_file=/tmp/mysql.log

Затем я остановился и снова запустил mysql, но получаю ошибку:

$ sudo service mysql stop
$ sudo service mysql start
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for details.

Итак, я проверил systemctl status mysql.service

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2019-01-04 17:50:31 CET; 45s ago
  Process: 27206 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, status=0/SUCCESS)
  Process: 27613 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=1/FAILURE)
 Main PID: 27208 (code=exited, status=0/SUCCESS)

Jan 04 17:50:31 librem systemd[1]: mysql.service: Failed with result 'exit-code'.
Jan 04 17:50:31 librem systemd[1]: Failed to start MySQL Community Server.
Jan 04 17:50:31 librem systemd[1]: mysql.service: Service hold-off time over, scheduling restart.
Jan 04 17:50:31 librem systemd[1]: mysql.service: Scheduled restart job, restart counter is at 5.
Jan 04 17:50:31 librem systemd[1]: Stopped MySQL Community Server.
Jan 04 17:50:31 librem systemd[1]: mysql.service: Start request repeated too quickly.
Jan 04 17:50:31 librem systemd[1]: mysql.service: Failed with result 'exit-code'.
Jan 04 17:50:31 librem systemd[1]: Failed to start MySQL Community Server.

В journalctl -xe Я получаю почти то же самое.

Я попытался создать файл журнала в /tmp/mysql.log и изменить его на 777, но после этого запуск mysql завершился неудачно с теми же ошибками.

Кто-нибудь знает, что здесь не так?

1 Ответ

0 голосов
/ 05 февраля 2019

В конце концов я решил это, используя этот совет . Просто скопируйте его сюда для будущих читателей:

SET global log_output = 'FILE';
SET global general_log_file='/var/log/mysql/general.log';
SET global general_log = 1;

Нет необходимости перезагружать. Пользователю нужна привилегия SUPER (GRANT SUPER ON *.* TO user1@localhost). Это работает для существующих и новых подключений к БД и является глобальным параметром, поэтому оно работает для всех баз данных.

Его можно отключить с помощью

SET global general_log = 0;

В любом случае, желаю всем прекрасного дня!

...