MySQL

De Wiki de la communauté Mandriva.

(Redirigé depuis Mysql)
MySQL est la principale base de donnée libre, c'est aussi une des plus rapide. L'interface d'administration la plus populaire est phpmyadmin. Vous avez une multitude de documentation sur l'internet pour apprendre à l'utiliser.


Sommaire

Serveur MySQL

Installation du serveur, si vous n'avez besoin que de vous connecter à un serveur, n'installer que le client

Installation

Ouvrez une console en tant que root et taper la commande suivante :

Image:Konsole.png
[root@ordi ~]# urpmi mysql


Démarrage

Ouvrez une console en tant que root et taper la commande suivante :

Image:Konsole.png
[root@computer ~]# service mysqld start

Si vous souhaitez que le serveur soit actif au prochain re-démarrage de votre ordinateur :

Image:Konsole.png
[root@ordi ~]# chkconfig mysqld on


Configuration initiale et sécurisation

Il faut donner un mot de passe à l'utilisateur root, et laisser les valeurs par défaut aux autres questions.
Ouvrez une console en tant que root et taper la commande suivante :

Image:Konsole.png
[root@ordi ~]# /usr/bin/mysql_secure_installation


Utilisation simple : créer un utilisateur et sa base

Création d'un utilisateur "pipo" avec le mot de passe "popi" et une base "base_test" en utf8. Nous effectuons les opération en console pour plus de facilité. Puisque vous avez sécurisé votre serveur, l'utilisateur "root" à un mot de passe :

Image:Konsole.png
[utilisateur@ordi ~]$ mysql -u root -p

Si l'utilisateur "root" n'a pas de mot de passe :

Image:Konsole.png
[utilisateur@ordi ~]$ mysql -u root
# Création de la base "base_test" (l'utf8 est indispensable actuellement).
create database base_de_test character set utf8;

# Création de l'utilisateur "pipo" avec le mot de passe "popi".
create user 'pipo'@'localhost' identified by 'popi';

# Attribution des droits d'administration de ma base "base_de_test" à l'utilisateur "pipo".
grant all privileges on base_de_test.* to 'pipo'@'localhost';

# Sortir de la console MySQL.
exit

Et voilà, vous pouvez vous connecter à votre base avec la commande suivante :

Image:Konsole.png
[utilisateur@ordi ~]$ mysql -u pipo -p

Accès depuis une application cliente

Nous avons la possibilité de nous connecter au serveur depuis une application cliente comme OpenOffice par exemple pour pouvoir faire des requêtes. En revanche il faut configurer le serveur pour qu'il accepte les connections depuis d'autre ordinateurs que lui même. L'objectif de cette documentation n'est pas de configurer OpenOffice pour qu'il accède à MySQL, cela est décrit sur le grand Internet.

Cela se fait en deux étapes :


Permettre au serveur de servir des clients distants

Tout se fait en Console avec l'utilisateur root (j'utilise vi par commodité).

  • Edition du fichier de configuration
Image:Konsole.png
[root@ordi ~]# vi /etc/my.cnf
  • Modifiez le fichier pour qu'il ait la configuration suivante
  1. Commenter la ligne skip-networking (ligne 54 pour moi) en mettant un # en début de ligne
  2. Dans le paragraphe The MySQL server (ligne 35 pour moi) ajouter une ligne
bind-address = l'adresse_ip_de_mon_serveur
  • Enregistrer le fichier et redémarrer le serveur de MySQL
Image:Konsole.png
[root@ordi ~]# service mysqld restart


Autoriser les clients distants à se connecter au serveur

Ce n'est pas tout, mais il faut que vous permettiez à un utilisateur de se connecter à votre base. Nous allons créer une base "base_de_test", avec un utilisateur "pipo" ayant un mot de passe "popi". Cette utilisateur aura la permission de se connecter depuis tous les ordinateurs de la planète. Ce n'est pas très sécurisé, mais ce n'est pas l'objet de cette démonstration.

Image:Konsole.png
[utilisateur@ordi ~]$ mysql -u root -p
# Création de la base "base_de_test" (l'utf8 est indispensable).
create database base_de_test character set utf8;

# Création de l'utilisateur "pipo" avec le mot de passe "popi".
# Notez le "@'%'" qui permet la connection depuis n'importe-quel ordinateur du reseau.
# Vous pouvez aussi spécifier un nom d'ordinateur de la table /etc/hosts ou une adresse IP.
create user 'pipo'@'%' identified by 'popi';

# Attribution des droits d'administration de ma base "base_de_test" à l'utilisateur "pipo".
grant all privileges on base_de_test.* to 'pipo'@'%';

# Sortir de la console MySQL.
exit

Voilà, le tour est joué, vous pouvez vous connecter à votre base distante depuis votre ordinateur.

Client MySQL

Pour se connecter à une base de donnée, il faut le serveur

Installation

Ouvrez une console en tant que root et taper la commande suivante :

Image:Konsole.png
[root@ordi ~]# urpmi mysql-client


phpMyAdmin

Installation

La page de télé-chargement : http://www.phpmyadmin.net/home_page/downloads.php Pour installer phpMyAdmin (vite fait, vérifiez que vous avez les droit d'écrire dans le dossier /var/www/html)

# Se placer dans le bon dossier
cd /var/www/html

# Télé-charger la dernière archive du projet 
wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.2.5/phpMyAdmin-3.2.5-all-languages.7z/download

# Extraire l'archive
7za x phpMyAdmin-3.2.5-all-languages.7z

# Changement de nom pour plus de facilité d'utilisation
ln -s phpMyAdmin-3.2.5-all-languages mysql

Ouvrir une page web sur l'adresse http://localhost/mysql

Erreurs connues (ne pas oublier de relancer le service du serveur de pages web pour leur prise en compte) :

  • "PHP ne peut charger l'extension mysql" => Il vous manque le paquet php-mysql (urpmi php-mysql)
  • "PHP ne peut charger l'extension mcrypt" => Il vous manque le paquet php-mcrypt (urpmi php-mcrypt)


Post-configuration

# If faut créer le fichier de configuration (se placer dans le bon dossier)
cp config.sample.inc.php config.inc.php
  1. Ajouter une phrase dans $cfg['blowfish_secret']
  2. Ajouter $cfg['SuhosinDisableWarning'] = true; au fichier de configuration

Astuces

Récupérée de « http://wiki.mandriva.com/fr/MySQL »
Autres langues