попробуйте изменить каталог журнала bin: mysql-bin.index не найден (код ошибки: 13) - PullRequest
24 голосов
/ 05 октября 2011

MySQL 5.1.54 Ubuntu 11.04

Я пытаюсь изменить каталог журнала bin в my.conf следующим образом:

[mysqld]
log_bin=/home/developer/logs/mysql/mysql-bin.log

После этих изменений сервер MySQL не может запуститься с ошибкой:

/usr/sbin/mysqld: File '/home/developer/logs/mysql/mysql-bin.index' 
not found (Errcode: 13)
111005 12:47:58 [ERROR] Aborting

Разрешение для каталога / home / developer / logs / mysql / равно 0777

Что происходит?

Ответы [ 13 ]

24 голосов
/ 06 октября 2011

Как обычно, решение было простым, но не очевидным: нужно было отредактировать настройки apparmor Я только что добавил в / etc / apparmor.d / usr.sbin.mysqld новую строку с путем к целевому каталогу: / home / developer / logs / * rw

Работает!

22 голосов
/ 02 июня 2013

/ usr / sbin / mysqld: файл '/usr/binlogs/mysql-bin.index' не найден (Код ошибки: 13)

У меня сработало:

chown -R mysql: mysql / usr / binlogs /

8 голосов
/ 17 февраля 2014

Точно так же, как к вашему сведению для тех, кто сталкивается с подобной проблемой, решение в основном то же самое, но причина проблемы не очевидна.

После обновления Debian wheezy не удалось запустить mysql.

Почему-то я понятия не имею, как разрешения для некоторых файлов в /var/lib/mysql не принадлежали пользователю mysql, что препятствовало запуску сервера.

A chown -R mysql.mysql /var/lib/mysql исправил это.

Я ничего не делал, чтобы испортить mysql, это был стандарт:

apt-get update

apt-get upgrade

Что-то пошло не так во время обновления Debian, и требуется ручное вмешательство.

4 голосов
/ 18 сентября 2015

Вариант 1:

  1. service mysqld stop

  2. Скопируйте файлы журнала, включая файл .index, в новое место.

     cp mysql-bin.log* /path/to/binlogs
     cp mysql-bin.index /path/to/binlogs
    
  3. Изменения в файле /etc/my.cnf.

    [mysqld]
    log-bin=/path/to/newdirecory/mysql-bin
    
    log-bin-index=/path/to/newdirectory/mysql-bin.index
    
  4. service mysqld start

Вариант 2:

Используйте эту утилиту для перемещения двоичных журналов:

mysqlbinlogmove --binlog-dir=/server/data /new/binlog_dir
3 голосов
/ 04 января 2013

Selinux может применять правило, согласно которому файлы базы данных MySQL должны находиться в / var / lib / mysql, а не где-либо еще. Попробуйте отключить selinux (selinux = 0 в командной строке загрузки ядра), если вы переместили mysql в другой каталог.

1 голос
/ 24 сентября 2018

mysqld: файл '/data/log/mysql/mysql-bin.index' не найден (код ошибки: 2 - Нет такого файла или каталога)

Я действительно застрял в середине моей настройки MySQL Master - Slave. Наконец, вышеупомянутое было проблемой разрешения, добавление команды ниже решило мою проблему.

chown -R mysql: mysql / data / log / mysql /

1 голос
/ 16 июля 2016

При настройке репликации в файле "my.cnf" необходимо упомянуть

Сервер-ID = 1 log_bin = / вар / Журнал / MySQL / MySQL-bin.log

Вы можете создать свой собственный каталог и дать разрешение. создать каталог "mysql" в / var / log /

chmod 777 mysql

это применимо к MySQL версии 5.7

1 голос
/ 12 мая 2016

Вам необходимо предоставить пользователю права доступа к каталогу следующим образом:

chown -R mysql:mysql /home/developer/logs/mysql/
0 голосов
/ 11 апреля 2019

Как указано в документации MySQL, https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_bin

Переменная log_bin, а не log-bin, по крайней мере, в версии 5.7

0 голосов
/ 30 ноября 2016

Вы также можете прокомментировать строку в my.cnf файле, который определяет местоположение журнала, поэтому mysql рассмотрит его путь по умолчанию и запустится правильно.

log-bin = /var/log/mysql/mysql-bin.log -> #log-bin = /var/log/mysql/mysql-bin.log.

Это будет полезно, если вас не очень волнуют журналы.

...