web-dev-qa-db-fra.com

le démarrage du serveur mysql a échoué

Je suis en cours d'exécution serveur Ubuntu. Quand j'ai essayé de me connecter à mysql (qui fonctionnait), j'ai eu l'erreur suivante

ERROR 2002 (HY000): Can't connect to local MySQL server through socket         '/var/run/mysqld/mysqld.sock' (2)

Mais le fichier mysqld.sock n'existe pas dans le dossier /var/run/mysqld. Lors de l'exécution de la commande ps aux | grep mysql, j'ai réalisé que le serveur mysql n'était pas en cours d'exécution.

J'ai ensuite essayé de redémarrer le serveur mysql en utilisant

service mysql start
service mysql restart
/etc/init.d/mysql start

Mais le processus de démarrage a échoué dans les 3 cas. Les fichiers /var/log/mysql/mysql.log et /var/log/mysql/mysql.err sont vides.

Mais /var/log/error.log affiche les informations suivantes:

140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting

140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete
27
ananth

Ouvrez un terminal (Ctrl+Alt+t) et procédez comme suit:

Sudo service mysql stop
Sudo rm /var/lib/mysql/ib_logfile0
Sudo rm /var/lib/mysql/ib_logfile1

et commentez la ligne record_buffer=64M dans /etc/mysql/my.cnf [1]

puis relancez msyql en utilisant:

Sudo service mysql restart

(Source)

25
jobin

Cela a résolu mon problème:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart

9
user520064

J'ai résolu le problème de la manière suivante:

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/

Dans un autre contexte, je l'ai affronté parce que le démon mysql n'a pas pu démarrer. Démarrez donc le démon avec la commande - mysqld start et essayez ensuite de démarrer le service.

7
Sudheesh.M.S

J'ai eu le même message d'erreur et la même vide dans les fichiers journaux. Dans mon fichier de configuration (my.cnf), j'avais indiqué que je voulais utiliser les tables myisam, en ajoutant cette ligne dans la section [mysqld]:

default-table-type = myisam

Après la mise à jour de mysql, il semble que cela empêche MySql de démarrer. J'ai changé ceci en:

default-storage-engine = myisam

et maintenant tout fonctionne bien.

2
Lars Olav Tveito

Dans mon cas, c'était un problème d'espace. Vérifiez s'il vous reste suffisamment d'espace.

de /var/log/mysql/error.log j'ai eu quelques indices de deux lignes:

2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'

Je pourrais voir que c'est une question d'espace.

root@xxx:/home/user1# df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  477M     0  477M   0% /dev
tmpfs                                 100M   11M   89M  11% /run
/dev/mapper/server1--osticket--vg-root  8.3G  7.9G     0 100% /
tmpfs                                 497M     0  497M   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                             472M  467M     0 100% /boot
tmpfs                                 100M     0  100M   0% /run/user/1000

À partir de là, j'ai pu constater qu'il ne restait plus assez d'espace sur le serveur virtuel /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /. Et je pensais soit à la migration ou à l’augmentation du lecteur virtuel, mais j’ai décidé de supprimer d’abord les fichiers inutiles.

Donc, dû nettoyer le cache et les fichiers inutiles:

#apt-get clean
#apt-get -f autoremove

Ensuite, n'oubliez pas de supprimer les fichiers journaux endommagés par mysql par la suite. Ils seraient générés à nouveau lorsque vous redémarrez mysql

#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start

Vérifiez votre service de serveur mysql et il est probablement opérationnel

root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
  Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1558 (mysqld)
    Tasks: 29
   Memory: 280.3M
      CPU: 589ms
   CGroup: /system.slice/mysql.service
           └─1558 /usr/sbin/mysqld

Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#

Affaire classée. J'espère que ça aide.

1
sukupandachu

Augmenter le RAM disponible en ajoutant un nouvel espace de swap peut également aider. Les étapes sont ici

Assurez-vous de créer un fichier/fichier d'échange d'une taille inférieure à l'espace disponible indiqué par

df -h

Par exemple pour moi la sortie de df- h était:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.3G  16% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            492M   12K  492M   1% /dev
tmpfs           100M  336K   99M   1% /run

J'ai donc créé en utilisant 2 G

Sudo fallocate -l 2G /swapfile

Et puis juste commencer le service

Sudo /etc/init.d/mysql restart

J'espère que cela t'aides. Bonne chance.

1
Vivek

Ma solution:

Vérifiez si dans tous /etc/rc1.d ... /etc/rc5.d, le script mysql commence par S (Ex S10mysql) et non par K AS K10mysql.

Explication: les préfixes K chargés avec stop, type de service kill; et le préfixe S commence par le paramètre de démarrage.

execute in terminal:   
(command        script action  runlevel)
---------------------------------------
Sudo update-rc.d mysql enable  2
Sudo update-rc.d mysql enable  3
Sudo update-rc.d mysql enable  4
Sudo update-rc.d mysql enable  5
1
Sergio Abreu

La commande suivante résout mon problème et mysql pourrait démarrer après. (Cela peut être utile dans certains cas)

chown -R mysql: /var/lib/mysql
0
Yusef Mohamadi

Supprimez le fichier /var/lib/mysql/.run-mysql_upgrade et il devrait démarrer

;)

"Avec un grand pouvoir vient une grande responsabilité"

0
Adrian Pule

J'ai eu ce problème lorsque j'ai défini max_allowed_packet = 0.5M dans /etc/mysql/my.cnf.

Je l'ai résolu en remplaçant max_allowed_packet par 1M.

0
ratskin