Mot-clef : base de données.

MariaDB 5.2.3 est disponible.

Logo MariaDB

MariaDB est disponible en version 5.2.3 en téléchargement. Bon le but de cet article n’est pas juste de dire que c’est sorti sinon un simple tweet aurait été tout à fait approprié mais le fait que j’en parle est relatif à l’augmentation des tarifs de MySQL en terme de support qui ont doublé ou quadruplé selon le produit il y a de cela peu de temps.

Pour rappel, MariaDB est un fork de MySQL qui a été initié par Michael Widenius (co-fondateur de MySQL) à la suite du rachat de MySQL par Sun et de ces derniers par Oracle. MariaDB se veut 100% compatible avec MySQL et est délivrée sous licence GNU GPL tout comme MySQL à cette nuance que MySQL est distribué sous licence propriétaire dans le cadre d’un projet propriétaire.

Le fait que MySQL aient augmenté leurs tarifs est une bonne nouvelle d’une part pour autres sociétés qui offrent du support MySQL mais aussi pour les autres SGBD et donc MariaDB.

Sources : dasini.net, ZDNet.fr, Image.

Ubuntu – MySQL : Restaurer une base de données.

MySQL Logo

Pour des raisons sombres et obscures qui ne regarde que votre personne vous avez besoin de restaurez une base de données MySQL et bien ce tutoriel va vous aider à réaliser votre rêve…

Beaucoup d’entres vous savent que l’on peut restaurer une base de données avec un script SQL tout simple. Mais un certain nombre ignore qu’on peut le faire aussi physiquement en déplaçant la base de données à partir du répertoire /var/lib/mysql. Cela peut s’avérer utile par exemple si mySQL est corrompu et que vous ne pouvez pas récupérer la base de données avec phpMyAdmin ou en ligne de commande.

Dans tous les cas il faut créer la base de données.

On peut la créer graphiquement via phpMyAdmin ou en ligne de commande. Avec phpMyAdmin ça se passe à l’accueil, il y a un formulaire où il est marqué « Créer une base de données ». Plus clair que ça tu meurs ! En ligne de commande, il faut d’abord se connecter à MySQL :

mysql -u root -p

Ici j’ai pris root comme utilisateur mais vous pouvez tout à fait en choisir un autre. Ensuite on crée la base de données en SQL avec comme charset (=interclassement) par exemple utf8_general_ci:

CREATE DATABASE mabdd CHARACTER SET utf8 COLLATE utf8_general_ci;
exit;

Restauration via un script SQL

Deux solutions s’offrent à vous. On le fait graphiquement en passant par phpMyAdmin ou en ligne de commande.

Graphiquement

Sélectionner la base de données dans le menu gauche de phpMyAdmin puis cliquer sur l’onglet Importer. Via le formulaire, choisissez le fichier à importer puis cliquer sur exécuter.

phpMyAdmin - capture d'écran d'import

En ligne de commande

mysql -u root -p mabdd --default_character_set utf8 < chemin/vers/le/script.sql

Restauration physique à partir du répertoire /var/lib/mysql

On va chercher dans /var/lib/mysql/, le dossier qui porte le même nom que la base de données à sauvegarder et on copie quelque part. Sur la machine sur laquelle on doit restaurer la base de données on suit cette procédure.

sudo cp -R chemin/vers/mabdd/ /var/lib/mysql/mabdd/
sudo chmod -R ug+rw /var/lib/mysql/mabdd/
sudo chown -R mysql:mysql /var/lib/mysql/mabdd/

Voilà c’est tout pour ce tuto, et n’oubliez surtout pas : BI-DOU-ILLEZ !

Connexion à MySQL avec PDO

Pour ceux qui comme moi pensent que la Programmation Orientée Objet est l’avenir du genre humain indispensable en programmation et notamment en PHP, voici un article sur comment se connecter à MySQL avec PDO.

PDO peut être utilisé en lieu et place des fonctions MySQL de PHP (mysql_connect, mysql_ query, etc…) mais aussi à la place de MySQLI. PDO contrairement à ces deux-là n’est pas exclusif à MySQL et vous permettra de vous adapter plus facilement à un autre type de SGBD

D’abord il faut savoir savoir que PDO signifie PHP Data Objects et comme vous l’aurez deviné puisqu’il s’agit de MySQL, cela sert à établir une connexion à une base de données et à interagir avec elle. PDO est une extension PHP et la classe utilisée se nomme PDO. Je sais trop compliqué comme nom. ;-)

On peut se connecter à plusieurs types de SGBD comme Microsoft SQL Server (blasphème je sais :-) ), Oracle, PostGreSQL…. Et surtout celui qui nous intéresse : MySQL.

Connexion à la base de données

$host = "localhost";
$dsn = "mysql:host=".$host.";dbname=".$nom_base_de_donnees;
$user = "user";
$pass = "password";
$connection = new PDO($dsn, $user, $pass);
// Si la base de données est en UTF-8.
$this->exec("SET NAMES 'utf8'");

Méthode query : récupérer des données.

$query = $connection->query("SELECT id, name FROM users");
// En renseignant PDO::FETCH_OBJ, les données récupérées seront retournées dans un objet.
while ($user = $query->fetch(PDO::FETCH_OBJ)) {
  echo "L'utilisateur n°".$user->id." s'appelle ".$user->name;
}

Méthode exec : exécuter une requête SQL.

$connection->exec("INSERT INTO users (id, name) VALUES (45, 'toto45')");
$connection->exec("DELETE FROM users WHERE id = 1");

Voilà c’est tout pour ce tuto, et n’oubliez surtout pas : BI-DOU-ILLEZ !

Import/Export avec Mysql dans un shell

Si toi aussi pendant des heures tu as eu la fièvre (non je ne suis pas un fan d’NTM, mais bon ça faisait longtemps que je voulais la placer) à cause de l’importation de script SQL trop volumineux dans MySQL, je te propose une solution : la ligne de commande. Bien sur il faut avoir accès au serveur en ligne de commande mais bon ça c’est ton problème pas le mien. ;-) Alors voilà la solution à tes soucis :

  • Pour l’import :
    mysql -u utilisateur -p basededonnees < monscript.sql
  • Et pour l’export :
    mysqldump -u utilisateur -p basededonnees > monscript.sql

On vous demandera bien sur le mot de passe utilisateur.

Si vous voulez spécifier le charset, utilisez l’option –default_character_set. Exemple pour l’importation :

mysql -u utilisateur -p basededonnees --default_character_set utf8 < monscript.sql

Bon c’est pas du neuf, ceux qui me suivaient sur feu blog.web-petit.com connaissent déjà ce tutot, mais bon à la demande générale d’une personne, je me suis dit que ce serait sympa de le remmettre.

Voilà c’est tout pour ce tuto, et n’oubliez surtout pas : BI-DOU-ILLEZ !