Serveurs Base de données

MySQL : Configuration et sécurisation

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières


Configuration des services



Bien souvent, le répertoire de travail d'apache /var/www et celui de mysql se trouve dans /var/lib/mysql
Le principal fichier de configuration d'apache est /etc/httpd/conf/httpd.conf , pour mysql il s'agit de /etc/my.cnf et pour PHP, /etc/php.ini.

Par défaut, la configuration de LAMP "fonctionne bien".

Néanmoins, il est possible de changer quelques informations dedans. Cela peut être utile dans certains cas.

MySQL (MariaDB)



Si on souhaite accéder à nos bases mysql depuis l'extérieur, il est nécessaire de commenter la ligne skip-networking et de modifier la ligne bind-address
Code TEXT :
<résultat omis>
#skip-networking
<résultat omis>
bind-address=0.0.0.0
<résultat omis>


Il ne faut pas oublier d'ouvrir le port 3306 (port par défaut) dans le pare-feu.

Redémarrer le service mysql pour prendre en compte les modifications (une des 3 commandes suivant la distribution) :

Code BASH :
/etc/init.d/mysqld restart

Code BASH :
service mysqld restart

Code BASH :
systemctl restart mysqld.service


Je conseille toujours de créer un deuxième utilisateur avec mot de passe, avec tous les droits pour travailler (un utilisateur en localhost et partout):
Code SQL :
 
CREATE USER 'utilisateur'@'%' IDENTIFIED BY 'motdepasse'; GRANT ALL PRIVILEGES ON * . * TO 'utilisateur'@'%' IDENTIFIED BY 'motdepasse' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
 
CREATE USER 'utilisateur'@'localhost' IDENTIFIED BY 'motdepasse'; GRANT ALL PRIVILEGES ON * . * TO 'utilisateur'@'localhost' IDENTIFIED BY 'motdepasse' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;



PHP



Si le site web installé est destiné à uploader des fichiers, il est possible que PHP vous refuse des fichiers au delà d'une limite.
Modifier dans ce cas les lignes
post_max_size = 8M
et
upload_max_file_size = 16M
par les valeurs désirées.