Попробуйте изменить каталог журнала 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
Что происходит?
Ответы
Ответ 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
.
Это будет полезно, если вас не беспокоят журналы.
Ответ 13
В качестве документации в MySQL говорите https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_bin
Переменная log_bin, а не log-bin, по крайней мере в версии 5.7