Paramétrage de MySQL 5.6

Répertoires de travail

Fichier de configuration

Dans le fichier de configuration (dans l'exemple, C:\MySQL\my.ini), paramétrer

basedir=C:/MySQL/
datadir=C:/MySQL/Data

et éventuellement

default-character-set=latin1
character-set-server=latin1
default-storage-engine=MYISAM
max_allowed_packet=16M

Penser commenter la ligne qui contient simplement "no-beep" qui déclenche un message d'erreur dans mysqldump.

Service

Sous Windows, le fichier de configuration utilisé par MySQL est fixé sur la ligne de commande du service MySQL. Pour la modifier, la commande est du type :

SC CONFIG MYSQL56 binPath= "C:\MySQL\bin\mysqld.exe --defaults-file=C:\MySQL\my.ini MYSQL56"

Ouvrir la fenêtre des services, afficher les propriétés du service MYSQL56 puis, dans l'onglet "Connexion", sélectionner "Compte système local" au lieu du "Compte réseau".

Accès à distance

Lancer l'invite de commandes mysql et taper

SELECT host, user, password FROM mysql.user WHERE user = 'root';

S'il n'existe pas de ligne donnant des droits aux machines distantes, lancer la commande

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'therootpassword';

Le '%' indique qu'il n'y a aucune restriction sur l'adresse IP. Si on souhaite limiter l'accès aux ordinateurs locaux :

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'therootpassword';

Sur les MySQL récents (à partir de la version 8), il est nécessaire de réaliser les opérations en deux étapes :

CREATE USER 'root'@'192.168.1.%' IDENTIFIED BY 'therootpassword' ;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' ;

Si le problème persiste, vérifier qu'il n'existe pas, dans le fichier de configuration, la ligne

bind-address = 127.0.0.1

Si elle existe, la commenter et relancer le service

Boîte à outils

Commandes Windows de contrôle des services

Comme nous l'avons vu, si le service est déjà en place, on peut modifier ses paramètres avec :

SC CONFIG MySQL57 binPath= "C:\MySQL\bin\mysqld.exe --defaults-file=C:\MySQL\my.ini MySQL56"

S'il n'est déjà en place, on peut le créer avec :

SC CREATE MySQL57 binPath= "C:\MySQL\bin\mysqld.exe --defaults-file=C:\MySQL\my.ini MySQL56"

Supprimer un service (en pensant à l'arrêter d'abord) :

sc stop [Service name]  
sc delete [service name]

Tuer un service "planté" : trouver le PID dans le gestionnaire des tâches (ou en ligne de commande avec sc queryex [service name]), puis

taskkill /f /pid [PID]

Installation manuelle de MySQL57

Après avoir installé le logiciel, il faut lui demander de créer ses bases de données système avec la commande :

Sous Windows :

bin\mysqld --initialize --console

Sous Linux, il faut s'assurer que les informations créées seront propriété de l'utilisateur "mysql"  :

bin/mysqld --initialize --user=mysql

Il faut ensuite trouver dans les logs le mot de pass root attribué par l'installeur, puis le modifier :

SET PASSWORD FOR 'root'@'localhost' = 'newPassword';

Et surtout, ne pas oublier de lui attribuer des droits en utilisant la commande GRANT.