1 votes

Le démarrage de Percona échoue : mysql ne peut pas accéder au répertoire pour la création de fichiers

J'ai trouvé quelques questions et suggestions pour un problème similaire, malheureusement rien ne semble fonctionner pour moi, alors s'il vous plaît excusez-moi si c'est un double (et indiquez la bonne source)...

Le serveur est Fedora Beefy Miracle, le serveur mysql percona est installé. Je ne sais pas grand-chose de l'installation, je suis venu longtemps après la configuration initiale. Maintenant, les services de base de données ne fonctionnent pas.

Démarrage de Percona :

# service percona start
Starting MySQL (Percona Server). ERROR! The server quit without updating PID file (/home/percona/data/example.domain.pid).

Configuration MySQL :

Il y a un my.cnf assez verbeux dans /home/percona (qui est lié au répertoire d'installation de percona) qui pointe vers datadir dans /home/percona/data. Dans /etc/ config il y a :

# cat /etc/my.cnf    
[mysqld]
datadir=/var/lib/mysql
(...)
[mysqld_safe]
log-error=/var/log/mysqld.log

Je ne sais pas avec certitude si cette configuration est utilisée, et comment mysql est appelé : Je suis nouveau à Percona et la configuration a été faite par quelqu'un d'autre. Cependant, le fichier journal est mis à jour à chaque démarrage (tentative) de service Percona avec l'erreur suivante :

# tail /var/log/mysqld.log
140814  0:55:18  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.

Cette erreur semble courante, bien que les discussions sur Google mentionnent généralement le mode "ouvrir" au lieu de "créer". De plus, je ne sais pas dans quel répertoire le fichier doit être créé. Des fichiers portant ce nom existent dans /var/lib/mysql/ et /home/percona/data/.

Vérifié et essayé jusqu'à présent :

  • définit récursivement le propriétaire de /home/percona à percona:mysql, mysql:mysql et de nouveau à percona:percona normal ;

  • définir récursivement le propriétaire de /var/lib/mysql à mysql:percona, percona:percona et retour au normal mysql:mysql ; Ces deux utilisateurs existent dans le système.

  • les permissions pour les fichiers ibdata1 existants dans les deux répertoires sont 660

  • J'ai essayé de définir les droits pour les fichiers ib* dans les deux répertoires, et les répertoires eux-mêmes, à 777 temporairement (pour vérifier quel utilisateur pourrait accéder / modifier / créer des fichiers - rien ne s'est passé, rien n'a changé ;

  • conseillé quelque part 'mysql_upgrade' donne des résultats :

    # mysql_upgrade 
    Looking for 'mysql' as: mysql
    Looking for 'mysqlcheck' as: mysqlcheck
    FATAL ERROR: Upgrade failed

    (mysqlcheck exécuté depuis la console montre une certaine sortie, aucune indication d'erreur).

  • J'ai peur d'exécuter mysql_install_db parce que je ne suis pas sûr de ce qui serait perdu ou écrasé dans le processus - il y avait des bases de données fonctionnant précédemment sur la machine et je suis presque sûr que je ne comprends pas complètement la configuration.

Que dois-je essayer ensuite, ou qu'est-ce que j'ai manqué ?

1voto

Vinzz Points 1850

Il me semble que quelque chose dans vos chemins est incorrect. La raison pour laquelle la plupart des messages que vous trouvez concernent "open" est que la plupart du temps c'est un problème de permissions, mais les chemins sont corrects. Lorsque vous voyez des erreurs concernant la "création", c'est parce que (généralement) le chemin que my.conf indique au service pour trouver les fichiers n'est pas le bon. no les contenir.

Trouvez-en un :

nnodb_data_home_dir = 
innodb_log_group_home_dir = 
innodb_log_arch_dir = 

Puis validez les chemins fournis sont corrects. A mon avis, ils ne le sont pas. Si c'est le cas, après les avoir corrigés, si vous avez des problèmes d'autorisations en cours, vous pouvez les exécuter :

chown -R mysql:mysql /path/to/data

0 votes

L'itinéraire était une bonne décision. J'ai fait en sorte que cela fonctionne en ajoutant les paramètres du répertoire innodb_... à /etc/my.cnf, en changeant le propriétaire de /var/lib/mysql en percona et en définissant user = percona dans les deux fichiers my.cnf. Je ne sais pas comment cela fonctionnait avant. Si quelqu'un peut expliquer comment le service percona utilise mysqld, cela pourrait être utile :)

0 votes

Percona est une version modifiée du service mysqld. En gros, l'installation consiste à déposer le fichier de service mysqld sur le fichier existant, et un fichier my.cnf modifié qui a plus d'options, de sorte qu'il est facile de passer de mysql standard à percona. Je pense qu'il s'est passé quelque chose dans le fichier conf original... quelque chose l'a modifié ou recréé, ce qui a provoqué vos échecs.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X