Mots-clé : cnf

mysql : mettre le client et le serveur en utf8 par défaut

A chaque fois que vous vous connectez, vous avez vos bases en utf8 mais lors de votre requête vous avez des caractères hyéroglyphes.
Et vous devez taper l’ordre « set names utf8 » à chaque fois.
Vous en avez assez ? Voici la solution :

Éditez votre fichier de configuration de mysql et ajoutez ces lignes :

[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci

Attention ! C’est très important de mettre les directives après le type de connexion. Par exemple, sur ma configuration ça donne au final :

19 [client]
20 port = 3306
21 socket = /var/run/mysqld/mysqld.sock
22 # (!) Olivier Pons / 20-03-2011
23 default-character-set = utf8
24
25 # Here is entries for some specific programs
26 # The following values assume you have at least 32M ram
27
28 # This was formally known as [safe_mysqld]. Both versions are currently parsed.
29 [mysqld_safe]
30 socket = /var/run/mysqld/mysqld.sock
31 nice = 0
32 # (!) Olivier Pons / 20-03-2011
33 character-set-server = utf8
34 collation-server = utf8_unicode_ci
35
36 [mysqld]
37 #
38 # * Basic Settings
39 #
40 user = mysql
41 pid-file = /var/run/mysqld/mysqld.pid
42 socket = /var/run/mysqld/mysqld.sock
43 port = 3306
44 basedir = /usr
45 datadir = /var/lib/mysql
46 tmpdir = /tmp
47 language = /usr/share/mysql/english
48 skip-external-locking
49 # (!) Olivier Pons / 20-03-2011
50 character-set-server = utf8
51 collation-server = utf8_unicode_ci
52 #

J’ai trouvé cet article ici, et je l’ai remis en Français, en espérant aider la communauté !