Bonjour, quand j'essaye de démarrer mon mysqld, j'obtiens cette erreur:
[root@localhost /]# service mysqld restart
Stopping mysqld: [ OK ]
MySQL Daemon failed to start.
Starting mysqld: [FAILED]
la raison principale est que le fichier my.cnf ne trouve pas mon fichier mysql.sock.
[root@localhost /]# mysqladmin -u root -p status
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!
Quand j'essaye de le rechercher avec:
Sudo find / -type s | grep mysqld.sock
J'aurais
find: ‘/proc/3253/task/3253/fd/5’: Bestand of map bestaat niet
find: ‘/proc/3253/task/3253/fdinfo/5’: Bestand of map bestaat niet
find: ‘/proc/3253/fd/5’: Bestand of map bestaat niet
find: ‘/proc/3253/fdinfo/5’: Bestand of map bestaat niet
"Bestand of map bestaat niet" == "File or directory don't exists"
Je suis nouveau dans ce domaine alors quelqu'un peut-il m'aider s'il vous plaît?
Quelle douleur! Je suis tombé sur le même problème (sur RedHat) et cela m'a aidé:
service mysqld stop
rm -rf /var/lib/mysql/*
service mysqld start
mysql_secure_installation
J'espère que cela pourra aider. Bonne chance!
"La raison principale est que le fichier my.cnf ne trouve pas mon fichier mysql.sock."
Nan. "LA RAISON PRINCIPALE" est mysqld has not started
, il n'y a donc pas mysql.sock et aucun client ne peut établir de connexion.
Actuellement, "pourquoi mysqld failds" est une vaste question. Le journal des erreurs MySQL a la raison "Pourquoi MySQL échoue". Si vous savez où se trouve le journal des erreurs mysql, ouvrez-le simplement et postez un message d'erreur dans votre question.
Mais probablement je suppose que vous ne savez pas où se trouve le journal des erreurs mysql ....
Identifie l'emplacement du journal des erreurs mysql
Nous devons donc identifier où il se trouve. on pourrait deviner quelque part ... mais l'approche exacte utilise strace
$ strace -f > strace.log 2>&1 service mysqld start
maintenant strace.log a tous les appels système liés à MySQL Deamon. ouvrez strace.log avec n’importe quel éditeur et cherchez 'err' '. dans mon cas
[pid 26976] open("/XXX/hostname.err", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
lorsque open () échoue
Cela pourrait arriver open()
échoue, erreur commune est
afin que vous puissiez trouver pourquoi mysqld ne démarre pas dans '/XXX/hostname.err'. nous apprécions hautement si vous postez un message d'erreur.
p.s.
J'ai testé strace avec
$ strace -f > strace.log 2>&1 mysql.server start
Pas sûr de travailler avec service mysqld
, mais aucune raison de ne pas travailler
"Je ne reçois rien en retour avec: $ strace -f> strace.log 2> & 1 service mysqld start"
En fait, service mysqld start
appelle /etc/rc.d/init.d/mysqld start
(en supposant que CentOS ou Fedora). alors, vous pouvez essayer.
$ strace -f > strace.log 2>&1 /etc/rc.d/init.d/mysqld start
Si my.cnf
que vous avez référencé est le bon fichier pour mysqld, ouvrez-le et recherchez la section [mysqld]
. Il ressemble à ce qui suit
[mysqld]
user = username
port = 1111
basedir = /path/
datadir = /path/data
Le journal des erreurs MySQL est dans /path/data
Merci Barmaley, pour cette réponse géniale. J'ai vérifié mon fichier mysqld.log.
Il montre toutes les raisons pour lesquelles mon service mysql ne démarre pas. Dans mon cas, l'utilisateur mysql n'a pas le droit d'écriture sur "/ var/run/mysqld" . J'ai donné la permission à l'utilisateur mysql de l'utilisateur root et cela a fonctionné pour moi.
Merci encore! Barmaley
De votre message, il semble que mysqld n'a pas pu démarrer MySQL Daemon failed to start.
Starting mysqld: [FAILED]
.
Vérifiez si mysqld exécute service mysqld status
.
Le fichier de configuration my.cnf recherche mysql.sock et vous cherchiez mysqld.sock. Deux noms différents.
Je ne suis pas un expert en mysql mais la question est:
Est-ce que mysql écoute sur une prise, sur un port TCP ou les deux?
vérifiez le fichier de configuration my.cnf qui se trouve généralement dans/etc ou/etc/mysql et vous verrez ceci. De plus, s'il fonctionne déjà en tant que socket, vous verrez le chemin d'accès à la socket.
J'espère que ça aide.
Cordialement
Tech mis en place:
Vagrant (Centos 6.6, MySQL 6.6) on top of MacOS Captain
Chaque fois que j'essaie d'exécuter mysql sur Centos, je vois ce problème, mais je ne suis pas sûr. S'il s'agit uniquement de la version du système d'exploitation et de MySQL.
Si vous ouvrez les fichiers journaux et vérifiez que vous verrez quelque chose comme ceci
/ usr/sbin/mysqld: Le fichier '/var/log/mysql-bin.index' est introuvable (Code d'erreur: 13 - Autorisation refusée)
Cette Permission Denied est parce que, par défaut, nous n'avons pas l'autorisation d'écrire dans les fichiers/var/log. Nous devons donc modifier les autorisations pour l'utilisateur. MySQL essaie d'écrire quelque chose dans bin-log
ou relay-logs
situé dans /var/log/mysql
.
Avant de modifier les autorisations, nous devons nous rendre compte qu'il n'y a pas de répertoire mysql dans/var/log, nous devons donc d'abord le créer, puis modifier les autorisations. Alors, j'ai fait ceci:
mkdir mysql
chown mysql: mysql
mysqld devrait commencer à fonctionner maintenant!