Mysql est une base de données SQL bien connue du monde open source. Elle permet la création de petites bases de données très performantes.
Paquets Debian nécessaires :
Configurer le mot de passe root :
Si vous disposez d'un serveur web sur le PC, je vous conseille PhpMyAdmin qui fournit une interface web intuitive pour la gestion de mysql.
Une tentative sans mot de passe doit échouer :
> mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Avec un mot de passe
> mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 36 Server version: 5.1.49-3 (Debian) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> status -------------- mysql Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (x86_64) using readline 6.1 Connection id: 36 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.1.49-3 (Debian) Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 UNIX socket: /var/run/mysqld/mysqld.sock Uptime: 1 min 30 sec Threads: 1 Questions: 102 Slow queries: 0 Opens: 99 Flush tables: 1 Open tables: 23 Queries per second avg: 1.133 -------------- mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | +--------------------+ 2 rows in set (0.00 sec) mysql>
Pour info le compte debian-sys-maint est créé à l'installation, son mot de passe est aléatoire, vous pouvez le trouver dans /etc/mysql/debian.cnf.
Il est possible de changer le mot de passe admin avec la commande :
>/usr/bin/mysqladmin -u root password 'enter-your-good-new-password-here'
Une autre méthode est la reconfiguration du paquet :
>dpkg-reconfigure mysql-server-5.1
Par défaut Mysql n'écoute que sur 127.0.0.1. Pour le rendre accessible à d'autres machines, commenter la ligne suivante dans /etc/mysql/my.cnf :
bind-address = 127.0.0.1
Voici un petit script /home/scripts/export_db.sh pour exporter l'intégralité des databases mysql dans un fichier (qui sera ensuite à sauvegarder) :
#/bin/sh /usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf --all-databases --add-drop-database --result-file=/home/scripts/dump_mysql/all_databases.sql
Ce script utilise le compte de maintenance debian (debian-sys-maint) et exporte les données dans /home/scripts/dump_mysql/all_databases.sql.
Pour automatiser l'export, il suffit d'utiliser cron, par exemple en créant /etc/cron.d/exportdb :
55 23 * * * root /home/scripts/export_db.sh
Il est conseillé de protéger l'accès aux données dumpées :
chmod og-rx -R /home/scripts/dump_mysql/
dump mysql :