Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
|
linux:mysql [2007/09/12 16:19] 127.0.0.1 édition externe |
linux:mysql [2011/10/04 21:41] (Version actuelle) matthieu |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag>fr fr:linux fr:serveur fr:base_de_données}} | ||
| ====== Mysql ====== | ====== 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. | 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. | ||
| - | |||
| - | Utilisé dans [[Bender]]. | ||
| ===== Installation de mysql ===== | ===== Installation de mysql ===== | ||
| Paquets Debian nécessaires : | Paquets Debian nécessaires : | ||
| * mysql-server | * mysql-server | ||
| - | * php4-mysql ou php5-mysql (pour pouvoir utiliser mysql avec du code php) | + | * php5-mysql (pour pouvoir utiliser mysql avec du code php) |
| - | ===== Configuration ===== | + | Configurer le mot de passe root : |
| - | Les étapes de la configuration sont : | + | * soit lors de l'installation du paquet |
| - | * Définir le mot de passe admin | + | * 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. | 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. | ||
| - | ==== Définir le mot de passe admin ==== | + | ===== Vérification ===== |
| - | La première étape consiste à changer le mot de passe admin. Par défaut Mysql est ouvert en administration à toutes les personnes connectées sur localhost. | + | |
| - | + | ||
| - | Deux méthodes sont possibles : | + | |
| - | * soit éditer la base mysql qui contient la table des utilisateurs et leurs droits. | + | |
| - | * soit en ligne de commande avec mysqladmin | + | |
| - | La deuxième méthode a pour avantage d'être rapide et ne nécessite pas de connaissances particulières en SQL. | + | |
| - | + | ||
| - | Changer le mot de passe en ligne de commande : | + | |
| - | >/usr/bin/mysqladmin -u root password 'enter-your-good-new-password-here' | + | |
| - | + | ||
| - | Connectez vous ensuite à mysql pour voir si cela fonctionne : | + | |
| Une tentative sans mot de passe doit échouer : | Une tentative sans mot de passe doit échouer : | ||
| > mysql | > mysql | ||
| Ligne 35: | Ligne 23: | ||
| > mysql -p | > mysql -p | ||
| Enter password: | 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> status | ||
| -------------- | -------------- | ||
| - | mysql Ver 14.7 Distrib 4.1.14, for pc-linux-gnu (i486) using readline 5.0 | + | mysql Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (x86_64) using readline 6.1 |
| - | Connection id: 7 | + | Connection id: 36 |
| Current database: | Current database: | ||
| Current user: root@localhost | Current user: root@localhost | ||
| Ligne 46: | Ligne 44: | ||
| Using outfile: '' | Using outfile: '' | ||
| Using delimiter: ; | Using delimiter: ; | ||
| - | Server version: 4.1.14-Debian_6-log | + | Server version: 5.1.49-3 (Debian) |
| Protocol version: 10 | Protocol version: 10 | ||
| Connection: Localhost via UNIX socket | Connection: Localhost via UNIX socket | ||
| Ligne 54: | Ligne 52: | ||
| Conn. characterset: latin1 | Conn. characterset: latin1 | ||
| UNIX socket: /var/run/mysqld/mysqld.sock | UNIX socket: /var/run/mysqld/mysqld.sock | ||
| - | Uptime: 2 min 51 sec | + | Uptime: 1 min 30 sec |
| - | Threads: 1 Questions: 37 Slow queries: 0 Opens: 26 Flush tables: 1 Open tables: 15 Queries per second avg: 0.216 | + | Threads: 1 Questions: 102 Slow queries: 0 Opens: 99 Flush tables: 1 Open tables: 23 Queries per second avg: 1.133 |
| -------------- | -------------- | ||
| - | |||
| - | mysql> | ||
| mysql> show databases; | mysql> show databases; | ||
| - | +----------+ | + | +--------------------+ |
| - | | Database | | + | | Database | |
| - | +----------+ | + | +--------------------+ |
| - | | mysql | | + | | information_schema | |
| - | | test | | + | | mysql | |
| - | +----------+ | + | +--------------------+ |
| 2 rows in set (0.00 sec) | 2 rows in set (0.00 sec) | ||
| mysql> | mysql> | ||
| - | |||
| </code> | </code> | ||
| Ligne 77: | Ligne 72: | ||
| + | ===== 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) : | ||
| + | |||
| + | <file> | ||
| + | #/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 | ||
| + | </file> | ||
| + | |||
| + | 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 ===== | ===== Backup ===== | ||
| - | * /etc/mysql/my.cnf | + | * /etc/mysql/ |
| - | * /var/lib/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 ===== | ===== Links ===== | ||
| - | * [[bender]] | ||
| * [[phpmyadmin]] | * [[phpmyadmin]] | ||
| * http://www.mysql.com/ | * http://www.mysql.com/ | ||