web-dev-qa-db-fra.com

Impossible de démarrer le serveur mysql

J'essaie de faire tourner un site web à partir de mon serveur, alors j'ai installé php, Apache et mysql.

J'ai des problèmes avec MySQL. Après l'installation, le redémarrage a échoué.

C'est la sortie:

root@ns213360:/etc/mysql# /etc/init.d/mysql start ; tail -n 50 /var/log/syslog
[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
Apr  3 09:27:22 ns213360 mysqld: 140403  9:27:22 InnoDB: Using Linux native AIO
Apr  3 09:27:22 ns213360 mysqld: 140403  9:27:22 InnoDB: Initializing buffer pool, size = 128.0M
Apr  3 09:27:22 ns213360 mysqld: 140403  9:27:22 InnoDB: Completed initialization of buffer pool
Apr  3 09:27:22 ns213360 mysqld: 140403  9:27:22 InnoDB: highest supported file format is Barracuda.
Apr  3 09:27:22 ns213360 mysqld: 140403  9:27:22  InnoDB: Waiting for the background threads to start
Apr  3 09:27:23 ns213360 mysqld: 140403  9:27:23 InnoDB: 5.5.35 started; log sequence number 1595685
Apr  3 09:27:23 ns213360 mysqld: 140403  9:27:23 [ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8'
Apr  3 09:27:23 ns213360 mysqld: 140403  9:27:23 [ERROR] Aborting
Apr  3 09:27:23 ns213360 mysqld:
Apr  3 09:27:23 ns213360 mysqld: 140403  9:27:23  InnoDB: Starting shutdown...
Apr  3 09:27:24 ns213360 mysqld: 140403  9:27:24  InnoDB: Shutdown completed; log sequence number 1595685
Apr  3 09:27:24 ns213360 mysqld: 140403  9:27:24 [Note] /usr/sbin/mysqld: Arrêt du serveur terminé
Apr  3 09:27:24 ns213360 mysqld:
Apr  3 09:27:24 ns213360 mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended
Apr  3 09:27:36 ns213360 /etc/init.d/mysql[24960]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Apr  3 09:27:36 ns213360 /etc/init.d/mysql[24960]: #007/usr/bin/mysqladmin: connect to server at 'localhost' failed
Apr  3 09:27:36 ns213360 /etc/init.d/mysql[24960]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Apr  3 09:27:36 ns213360 /etc/init.d/mysql[24960]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Apr  3 09:27:36 ns213360 /etc/init.d/mysql[24960]:
Apr  3 09:28:01 ns213360 /USR/SBIN/CRON[24980]: (root) CMD (/usr/local/rtm/bin/rtm 40 > /dev/null 2> /dev/null)
Apr  3 09:29:01 ns213360 /USR/SBIN/CRON[25025]: (root) CMD (/usr/local/rtm/bin/rtm 40 > /dev/null 2> /dev/null)
Apr  3 09:29:19 ns213360 mysqld_safe: Starting mysqld daemon with databases from /var/lib/mysql
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 [Warning] The syntax '--log-slow-queries' is deprecated and will be removed in a future release. Please use '--slow-query-log'/'--slow-query-log-file' instead.
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 [ERROR] An old style --language value with language specific part detected: /usr/share/mysql/french/
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 [ERROR] Use --lc-messages-dir without language specific part instead.
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 [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.
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 [Note] Plugin 'FEDERATED' is disabled.
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 InnoDB: The InnoDB memory heap is disabled
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 InnoDB: Mutexes and rw_locks use GCC atomic builtins
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 InnoDB: Compressed tables use zlib 1.2.7
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 InnoDB: Using Linux native AIO
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 InnoDB: Initializing buffer pool, size = 128.0M
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 InnoDB: Completed initialization of buffer pool
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19 InnoDB: highest supported file format is Barracuda.
Apr  3 09:29:19 ns213360 mysqld: 140403  9:29:19  InnoDB: Waiting for the background threads to start
Apr  3 09:29:20 ns213360 mysqld: 140403  9:29:20 InnoDB: 5.5.35 started; log sequence number 1595685
Apr  3 09:29:20 ns213360 mysqld: 140403  9:29:20 [ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8'
Apr  3 09:29:20 ns213360 mysqld: 140403  9:29:20 [ERROR] Aborting
Apr  3 09:29:20 ns213360 mysqld:
Apr  3 09:29:20 ns213360 mysqld: 140403  9:29:20  InnoDB: Starting shutdown...
Apr  3 09:29:21 ns213360 mysqld: 140403  9:29:21  InnoDB: Shutdown completed; log sequence number 1595685
Apr  3 09:29:21 ns213360 mysqld: 140403  9:29:21 [Note] /usr/sbin/mysqld: Arrêt du serveur terminé
Apr  3 09:29:21 ns213360 mysqld:
Apr  3 09:29:21 ns213360 mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended
Apr  3 09:29:33 ns213360 /etc/init.d/mysql[25685]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Apr  3 09:29:33 ns213360 /etc/init.d/mysql[25685]: #007/usr/bin/mysqladmin: connect to server at 'localhost' failed
Apr  3 09:29:33 ns213360 /etc/init.d/mysql[25685]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Apr  3 09:29:33 ns213360 /etc/init.d/mysql[25685]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Apr  3 09:29:33 ns213360 /etc/init.d/mysql[25685]:
1
user1708580

Selon le journal, il y a une erreur avec une variable: unknown variable 'default-character-set=utf8'

default-character-set est une variable utilisée pour le client et non pour le serveur.

Je soupçonne que dans votre fichier /etc/mysql/my.cnf, il y a une ligne

default-character-set = utf8

dans la section [mysqld] au lieu de la section [mysql] ou [client].

Si vous voulez forcer votre serveur à fonctionner avec le jeu de caractères UTF8 par défaut, dans le fichier my.cnf, vous devez mettre

jeu de caractères serveur = utf8

dans la section [mysqld].

Votre fichier my.cnf devrait donc ressembler à ceci:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
character-set-server = utf8
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'

les deux dernières lignes servent à imposer l'utilisation du classement UTF8 "insensible à la casse" avec le jeu de caractères UTF8.

Une fois que votre MySQL sera démarré, vous pouvez vérifier que UTF8 est utilisé en lançant la commande suivante à l'invite Mysql:

mysql> show variables like 'char%';

donnant un résultat comme celui-ci (pour mon propre serveur - le vôtre peut être différent):

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
2
Benoit