Dernière modif 7 mars 2007
Cette page concerne la Mandriva et la ubuntu, sauf mention du contraire les manips sont à faire quelque soit la distribution.
Le chapitre Installation concerne
l'installation des packages binaires, pour une installation en
utilisant
les sources (version plus récente) voir ma page installation apache+PHP+MySQL.
Les autres chapitres concernent les deux types d'installation.
Cela va nous créer un ensemble d'exécutables sous /usr/sbin (ceux réservés à root) et sous /usr/bin (pour tous les utilisateurs), par ailleurs un répertoire /var/lib/mysql va être créé. Le fichier de démarrage du daemon MySQL se trouve sous /etc/rc.d/init.d pour une Mandriva et sous /etc/init.d sous ubuntu.
L'installation par rpm n'a pas lancé le daemon il
faudra le faire manuellement en tapant
/etc/rc.d/init.d/mysql start
NOTE Vous noterez que si vous faites un:
ps aux | grep mysqld
L'utilisateur mysql est proprio du daemon mysqld.
Vous vous rendrez compte que même si c'est root qui lance
le daemon aussitôt après c'est l'utilisateur
mysql
qui en devient le proprio, ainsi si jamais il y avait une faille de
sécurité dans MySQL, le hacker ne se retrouverait
pas root mais mysql avec les droits limités qui
vont avec.
Le mot de passe peut être différent de celui du login.
Maintenant on va créer un compte utilisateur (olivier dans mon exemple), pour cela on doit se connecter en tant qu'administrateur de la base à la base de donnée mysql contenant les infos sur les utilisateurs et leurs droits.
mysql -u root -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 5.0.33
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
A présent on va entrer l'utilisateur olivier qui sera un super utilisateur avec les mêmes droits que root:
mysql> INSERT INTO user
->
VALUES('localhost','olivier',PASSWORD('mot-de-passe'),
->
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','
',' ',' ',' ','0','0','0');
Query OK, 1 row affected (0.00 sec)
NOTE Il n'est pas obligatoire de rentrer le login pour le nom d'utilisateur et le mot de passe de login.
Pour voir si la saisie s'est bien passée:
mysql> SELECT * FROM user;
| Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections |
| localhost | root | 6bf57a02084c345b | Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
0 |
0 |
0 |
||||
| localhost | olivier | 588c797a754bd00a | Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
0 | 0 |
|
5 rows in set (0.00 sec)
Maintenant pour prendre tout ça en compte
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.08 sec)
Pour quitter
mysql>quit
mysql -u olivier -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 5.0.33
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Pour voir la liste des bases de données disponibles, on tapera:
mysql> SHOW DATABASES;
+----------------+
| Database |
+----------------+
| mysql |
+----------------+
4 rows in set (0.00 sec)
On va maintenant créer une base de données essai:
mysql> CREATE DATABASE essai;
Query OK, 1 row affected (0.00 sec)
On va utiliser maintenant cette base de donnée
mysql> USE essai
Database changed
Comme la base vient d'être crée, elle ne contient aucune table, pour s'en convaincre il suffit de taper:
mysql> SHOW TABLES;
Empty set (0.00 sec)
Pour notre première exemple Apache+PHP+MySQL, on va créer la table suivante:
mysql> CREATE TABLE coord (
-> nom VARCHAR(20),
-> prenom VARCHAR(20),
-> email VARCHAR(30)
-> );
Query OK, 0 rows affected (0.03 sec)
Jetons un coup d'oeil maintenant sur les tables disponibles:
mysql> SHOW TABLES;
+---------------------+
| Tables in essai |
+---------------------+
|
coord
|
+---------------------+
1 row in set (0.00 sec)
La table nouvellement créée apparaît bien. Pour
avoir le détail de cette table, on tapera:
mysql> DESCRIBE coord;
+-----------+--------------+--------+------+-----------+------+
| Field |
Type |
Null | Key | Default |Extra |
+-----------+--------------+--------+------+-----------+------+
| nom | varchar(20) | YES
| |
NULL
|
|
| prenom | varchar(20) | YES
| |
NULL
|
|
| email | varchar(30) | YES
| |
NULL
|
|
+-----------+--------------+--------+------+-----------+------+
3 rows in set (0.00 sec)
Pour notre deuxième exemple Apache+PHP+MySQL, on créera la table suivante:
mysql> CREATE TABLE ref (
-> date
VARCHAR(20),
-> host
VARCHAR(20),
-> ip VARCHAR(15),
-> os VARCHAR(20),
-> page VARCHAR(30)
-> );
Query OK, 0 rows affected (0.05 sec)
Elle contiendra les informations sur les visiteurs du site. A présent pour quitter tapez simplement quit.
Reportez vous maintenant à la page Apache et au paragraphe
correspondant pour la manipulation de ces tables avec Apache+PHP.
| [Retour page d'accueil FUNIX] | [Retour haut de la page] |