Faire une base de données avec MySQL

Si vous utilisez un CMS pour faire un site web, il est parfois utile de savoir mettre en place une base données MySQL sans passer par PHPMyAdmin. Ce dernier est souvent pratique mais les commandes MySQL sont plus rapides dans le cas qui nous occupe.

Si vous ne savez pas ce qu'un un CMS, et si vous ne savez pas ce qu'est MySQL, voyez :

En principe, lors de l'installation de MySQL, ce dernier vous a réclamé de mettre un mot de passe pour protéger son accès. Si vous avez bien noté le mot de passe, il va vous servir maintenant. Si vous n'avez pas mis de mot de passe ou si vous avez oublié le mot de passe, vous pouvez reconfigurer MySQL avec une commande dans le terminal :

# dpkg-reconfigure mysql

Lancez un terminal et sans avoir besoin de passer en «root», tapez la commande suivante, en l'adaptant - Ubuntu Hardy Hero:

$ mysql -u adminusername -p

«adminusername» = root, par défaut ; vous remplacez donc «adminusername» par «root».

À ce moment-là, le terminal vous dit de taper le mot de passe lié à MySQL

Enter password:

Rien ne s'affiche sur le terminal mais si vous avez tapé le bon mot de passe, MySQL vous accueille ainsi:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is...
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

L'invite mysql> suit et vous invite donc à taper la commande qui met en place la DB (base de données) :

mysql> CREATE DATABASE databasename;

«databasename» = le nom que vous avez envie de donner à votre base de données : mot simple à retenir sans espace ni caractères spéciaux (collez à l'ACSII). Attention à la ponctuation ;. Je ne suis pas sûre que les capitales soient indispensables dans les commandes MySQL.

Le terminal vous envoie ce message si tout va bien :

Query OK, 1 row affected (0.00 sec)

L'invite mysql> suit et voici la commande à taper pour créer ou lier un utilisateur à votre nouvelle DB.

GRANT ALL PRIVILEGES ON databasename.* TO username@hostname IDENTIFIED BY "password";

Cette commande s'écrit sans aller à la ligne ; le terminal peut faire passer le texte à la ligne mais ce n'est qu'une illusion, la commande tient sur une ligne même si le terminal, trop petit, l'affiche sur deux lignes. La flèche éventuelle IDENTIFIED vous indique qu'il s'agit de la même commande et donc n'allez pas à la ligne.

  • username = le nom d'un utilisateur existant dans MySQL ou un nouvel utilisateur qui aura le droit d'accéder à la DB
  • Il faut remplacer "databasename" par le nom de la nouvelle BD mise en place juste avant.
  • hostname: si vous avez LAMP en local, remplacez hostname par locahost.
  • "password": remplacer par le mot de passe que vous voulez. N'oubliez pas les guillemets. (pas celui de "root" à MySQL)
  • Respectez l'usage des guillemets indiqués dans la commande.li>

Encore une fois si tout va bien, le terminal affiche :

Query OK, 0 rows affected (0.00 sec)

L'invite mysql> suit et il vous reste à taper ceci pour mettre à jour les droits accordés à l'utilisateur sur la nouvelle DB: 

 FLUSH PRIVILEGES;

Encore une fois si tout va bien, le terminal affiche :

Query OK, 0 rows affected (0.01 sec)

L'invite mysql> revient et il ne reste plus qu'à quitter MySQL en tapant le mot magique : EXIT

MySQL vous dit Bye Icon wink