Подтвердить что ты не робот

Попробуйте изменить каталог журнала bin: mysql-bin.index не найден (Errcode: 13)

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/is 0777

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

4b9b3361

Ответ 1

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

Это работает!

Ответ 2

/usr/sbin/mysqld: Файл '/usr/binlogs/mysql-bin.index' не найден (Errcode: 13)

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

chown -R mysql: mysql/usr/binlogs/

Ответ 3

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

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

Как бы то ни было, я понятия не имею, как права на некоторые из файлов в /var/lib/mysql не принадлежали пользователю mysql, тем самым предотвращая запуск сервера.

A chown -R mysql.mysql /var/lib/mysql зафиксировал его.

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

apt-get update

apt-get upgrade

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

Ответ 4

Вариант 1:

  • service mysqld stop

  • Скопируйте файлы журнала, в том числе INF файл, в новое место.

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

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

Вариант 2:

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

mysqlbinlogmove --binlog-dir=/server/data /new/binlog_dir

Ответ 5

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

Ответ 6

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

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

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

chmod 777 mysql

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

Ответ 7

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

chown -R mysql:mysql /home/developer/logs/mysql/

Ответ 8

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

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

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

Ответ 9

Доступен ли ваш пользователь ко всем верхним каталогам? В специальном каталоге /home/developer/? Попробуйте войти в систему с учетной записью сервера mysql и коснитесь файла журнала.

Ответ 10

У меня была аналогичная проблема, когда я пытался изменить переменную datadir во время новой установки. Решение в моем случае состояло в том, чтобы запустить первый запуск с отключенным логом. После этого я смог снова включить его, используя новый путь...

Ответ 11

Ваша конфигурация неверна:

log_bin=/home/developer/logs/mysql/mysql-bin.log

Вместо этого вы будете использовать

log-bin=/home/developer/logs/mysql/mysql-bin.log

Ответ 12

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

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

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