web-dev-qa-db-fra.com

essayez de changer le répertoire du journal bin: mysql-bin.index introuvable (Errcode: 13)

MySQL 5.1.54 Ubuntu 11.04

Je vais essayer de changer le répertoire du journal bin dans my.conf comme:

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

Après cela, le serveur MySQL ne peut pas démarrer avec une erreur:

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

L'autorisation pour le répertoire/home/developer/logs/mysql/is 0777

Que se passe-t-il?

25
solo117

Comme d'habitude, la solution était simple mais pas évidente: il fallait modifier les paramètres de l'apparmeur que je viens d'ajouter à / etc/apparmor.d/usr.sbin.mysqld une nouvelle chaîne avec le chemin vers le répertoire cible: - / home/developer/logs/* rw

Ça marche!

26
solo117

/ usr/sbin/mysqld: fichier '/usr/binlogs/mysql-bin.index' introuvable (Errcode: 13)

Cela a fonctionné pour moi avec:

chown -R mysql: mysql/usr/binlogs /

22
Pradeep Jadhav

Tout comme un FYI pour quiconque rencontre un problème similaire, la solution est fondamentalement la même, mais la cause du problème n'est pas évidente.

Après la mise à niveau de Debian Wheezy, mysql n'a pas pu démarrer.

D'une manière ou d'une autre, je ne sais pas comment, les autorisations sur certains fichiers dans /var/lib/mysql n'appartenait pas à l'utilisateur mysql, empêchant ainsi le serveur de démarrer.

UNE chown -R mysql.mysql /var/lib/mysql l'a corrigé.

Je n'ai rien fait pour gâcher mysql, c'était un standard:

apt-get update

apt-get upgrade

Quelque chose est devenu étrange pendant la mise à niveau de Debian et une intervention manuelle était nécessaire.

8
Halfstop

Option 1:

  1. service mysqld stop

  2. Copiez les fichiers journaux, y compris le fichier .index, vers un nouvel emplacement.

     cp mysql-bin.log* /path/to/binlogs
     cp mysql-bin.index /path/to/binlogs
    
  3. Faites des changements dans le /etc/my.cnf fichier.

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

Option 2:

Utilisez cette utilité pour déplacer les journaux binaires:

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

Selinux pourrait appliquer la règle selon laquelle les fichiers de base de données MySQL doivent vivre dans/var/lib/mysql et nulle part ailleurs. Essayez de désactiver selinux (selinux = 0 sur la ligne de commande de démarrage du noyau) si vous avez déplacé mysql dans un autre répertoire.

3
Jim Ockers

Lors de la configuration de la réplication dans le fichier "my.cnf", il faut mentionner

server-id = 1 log_bin =/var/log/mysql/mysql-bin.log

vous pouvez créer votre propre répertoire et donner la permission. créer le répertoire "mysql" dans/var/log /

chmod 777 mysql

cela s'applique à MySQL version 5.7

1
Samrendra

mysqld: fichier '/data/log/mysql/mysql-bin.index' introuvable (Errcode: 2 - Aucun fichier ou répertoire de ce type)

J'étais vraiment coincé au milieu de ma configuration MySQL Master - Slave. Enfin, ce qui précède était un problème d'autorisation, l'ajout de la commande ci-dessous a résolu mon problème.

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

1
Vaisakh PS

Vous devez accorder des autorisations utilisateur au répertoire comme suit:

chown -R mysql:mysql /home/developer/logs/mysql/
1
Sujit Devkar

Vous pouvez également commenter la ligne dans my.cnf fichier qui définit l'emplacement du journal, donc mysql considérera son chemin par défaut et démarrera correctement.

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

Cela sera utile si vous ne vous souciez pas beaucoup des journaux.

0
Swaps

Comme le dit la documentation dans mysql https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_bin

La variable est log_bin et non log-bin au moins dans la version 5.7

0
Felipe Villalobos

J'ai eu un problème similaire lorsque j'essayais de changer la variable datadir lors d'une nouvelle installation. Dans mon cas, la solution consistait à exécuter le premier démarrage avec la log-bin désactivée. Après cela, j'ai pu le réactiver en utilisant le nouveau chemin ...

0
Dimitre Radoulov

Votre configuration est erronée:

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

Vous utiliseriez à la place

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

Votre utilisateur a-t-il accès à tous les répertoires supérieurs? En particulier, le répertoire/home/developer /? Essayez de vous connecter avec le compte du serveur mysql et touchez le fichier journal.

0
Andreas