Ce tutoriel vous présente comment installer un serveur MySQL 5.0 sous Linux debian Etch (4.0) et Lenny (5.0).
Nous aborderons aussi la création d'une base et de son utilisateur, ainsi que la création d'un utilisateur administrateur.
=>
Installation
=>
Tester la configuration
=>
Créer et supprimer une base de données et son utilisateur
=>
Créer un utilisateur administrateur
Installation
Comme d'habitude, commençons par la mise à jour des paquets Debian:
apt-get update
On installe ensuite MySQL :
apt-get install mysql-server
Cette installation met à jour et installe certains paquets, répondre 0 pour Oui :
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
................................
Souhaitez-vous continuer ? [O/n]
Au paramétrage des paquets le
mot de passe du superutilisateur de MySQL est demandé (utilisateur root)
Tester la configuration
Une fois terminé, testez la présence du serveur MySQL avec nmap :
nmap localhost | grep mysql
3306/tcp open mysql
On peut donc se connecter à MySQL s'y balader et en sortir ;-)
mysql -u root -ppassword
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.01 sec)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| proc |
| procs_priv |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
17 rows in set (0.01 sec)
mysql>exit
bye
$
Créer et supprimer une base de données et son utilisateur
On commence donc par se connecter à MySQL en root :
mysql -u root -ppassword
Puis nous allons créer une base de données nommée
xenetis_bdd ayant un utilisateur spécifique
xenetis_user ayant comme mot de passe
xenetis_passwd.
Cet utilisateur pourra seulement se connecter en local et pas de l'extérieur :
mysql> create database xenetis_bdd;
Query OK, 1 row affected (0.02 sec)
mysql> GRANT ALL PRIVILEGES ON xenetis_bdd.* TO 'xenetis_user'@'localhost' IDENTIFIED BY 'xenetis_passwd' WITH GRANT OPTION;
Query OK, 0 row affected (0.02 sec)
mysql>exit
bye
$
Nous allons maintenant supprimer notre base et notre utilisateur :
mysql -u root -ppassword
mysql> drop database xenetis_bdd;
Query OK, 0 row affected (0.00 sec)
mysql> drop user 'xenetis_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql>exit
bye
$
Il est toujours nécessaire de préciser le host pour lequel on veut supprimer l'utilisateur, si on ne le précise pas, il tente de le supprimer pour un host défini comme étant global :
% (c'est à dire un utilisateur pouvant se connecter de n'importe où) :
mysql> drop user xenetis_user;
ERROR 1396 (HY000): Operation DROP USER failed for 'xenetis_user'@'%'
mysql> drop user 'xenetis_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql>exit
bye
$
Créer un utilisateur administrateur
Pour cela nous allons créer un utilisateur ayant accès à toutes les bases de données, et en provenance d'une seule adresse IP :
mysql -u root -ppassword
mysql> GRANT ALL PRIVILEGES ON *.* TO 'administrateur'@'mon_adresse_ip' IDENTIFIED BY 'mon_passwd' WITH GRANT OPTION;
Query OK, 0 row affected (0.02 sec)
mysql>exit
bye
$
Si vous désirez que cet utilisateur puisse se connecter de n'importe quelle adresse (ce qui est très mal !!!), il vous suffit de remplacer
mon_adresse_ip par
% .
Enfin, afin de pouvoir vous connecter à MySQL autrement qu'en local, il est nécessaire de commenter une ligne de configuration dans my.cnf :
nano /etc/mysql/my.cnf
Commenter cette ligne avec un # :
bind-address = 127.0.0.1
Devient :
#bind-address = 127.0.0.1
Puis redémarrer MySQL :
/etc/init.d/mysql restart