{{tag>fr fr:linux fr:serveur fr:base_de_données}} ====== Mysql ====== 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. ===== Installation de mysql ===== Paquets Debian nécessaires : * mysql-server * php5-mysql (pour pouvoir utiliser mysql avec du code php) Configurer le mot de passe root : * soit lors de l'installation du paquet * soit en suivant [[#Edition du mot de passe admin]] 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. ===== Vérification ===== 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. ===== Edition du mot de passe admin ===== 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 ===== Rendre mysql accessible par le réseau ===== 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 ===== Script dump de mysql ===== 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/ ===== Backup ===== * /etc/mysql/ * /var/lib/mysql/ * /var/log/mysql/ dump mysql : * /etc/cron.d/exportdb * /home/scripts/export_db.sh * /home/scripts/dump_mysql/all_databases.sql ===== Links ===== * [[phpmyadmin]] * http://www.mysql.com/