MySQL est un système de gestion de base de données relationnelle (RDBMS) qui est utilisé comme backend pour d'innombrables applications Web et serveur. Initialement publié en 1995, il reste un choix populaire pour les développeurs en tant que serveur de base de données.
Avant de commencer ce guide, veuillez vous assurer que vous avez suivi les étapes décrites dans notre Configuration et sécurisation d'une instance de calcul. De plus, assurez-vous que vous êtes connecté à votre système en tant qu'utilisateur root.
Installer MySQL
Exécutez la commande suivante pour vous assurer que votre référentiel de packages est à jour :
emerge --sync
La commande suivante mettra à jour tous les packages et leurs dépendances sur le système. Si vous n'êtes pas à l'aise avec cette commande, vous pouvez l'ignorer ou utiliser emerge --update world
:
emerge --update --deep world
Exécutez la commande suivante pour installer MySQL :
emerge dev-db/mysql
Une fois ce processus terminé, vous devrez également installer les bases de données utilisées par MySQL. Exécutez la commande suivante :
mysql_install_db
Vous êtes maintenant prêt à démarrer le serveur MySQL pour la première fois :
/etc/init.d/mysql start
Vous devrez exécuter mysql_secure_installation
pour définir un mot de passe root et sécuriser votre instance MySQL. Exécutez la commande suivante :
mysql_secure_installation
Si vous souhaitez que MySQL s'exécute au démarrage du système, exécutez la commande suivante :
rc-update add mysql default
Configurer MySQL
Par défaut, MySQL se lie à localhost. Si vous souhaitez que MySQL écoute sur une IP publique, vous pouvez modifier le bind-address
valeur dans /etc/mysql/my.cnf
pour refléter l'adresse IP de votre Linode. Autoriser un accès illimité à MySQL sur une adresse IP publique n'est pas conseillé, et vous pouvez envisager de mettre en place des règles de pare-feu pour autoriser uniquement le trafic provenant d'adresses IP spécifiques.
Les suggestions répertoriées ci-dessus peuvent ne pas convenir à tous les environnements. Assurez-vous donc que votre application ne nécessitera pas de paramètres différents. Veuillez consulter les ressources supplémentaires dans la section "Plus d'informations" de ce guide pour une documentation plus détaillée sur la configuration de MySQL.
Chaque fois que vous modifiez les paramètres dans /etc/mysql/my.cnf
, vous devrez redémarrer le serveur MySQL. Exécutez la commande suivante :
/etc/init.d/mysql restart
Utiliser MySQL
La plupart des interactions avec MySQL se font via mysql
utilitaire de ligne de commande. Exécutez la commande suivante pour interagir avec MySQL :
mysql -u root -p
Lorsque vous y êtes invité, entrez le mot de passe que vous avez créé lors de l'mysql_secure_installation
processus. Une fois cela fait, vous serez accueilli par l'invite MySQL :
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.1.51-log Gentoo Linux mysql-5.1.51
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>
Si vous oubliez votre mot de passe root MySQL ultérieurement, il peut être réinitialisé avec la séquence de commandes suivante :
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables --skip-networking &
mysqladmin -u root
Une fois connecté, entrez les commandes suivantes à l'invite MySQL :
USE mysql;
UPDATE user SET PASSWORD=PASSWORD("CHANGEME") WHERE User='root';
FLUSH PRIVILEGES;
exit
Pour voir une liste des commandes disponibles (pas syntaxe SQL), émettez \h
à l'invite MySQL :
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
Créons une base de données et affectons-lui un utilisateur. Exécutez les commandes suivantes à l'invite MySQL :
CREATE DATABASE testdb;
CREATE USER 'testuser' IDENTIFIED BY 's8723hk2';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
exit
Reconnectons-nous maintenant au client MySQL en tant que testuser
et créez un exemple de tableau appelé "clients". Lancez les commandes suivantes :
mysql -u testuser -p
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Cela crée une table avec un champ ID client de type INT pour entier (auto-incrémenté pour les nouveaux enregistrements, utilisé comme clé primaire), ainsi que deux champs pour stocker le nom du client. Bien sûr, vous voudriez probablement stocker beaucoup plus d'informations que cela sur un client, mais c'est néanmoins un bon exemple de cas courant.
Régler MySQL
MySQL Tuner est un outil utile qui se connecte à une instance en cours d'exécution de MySQL et fournit des recommandations de configuration basées sur la charge de travail. Idéalement, l'instance MySQL devrait avoir fonctionné pendant au moins 24 heures avant d'exécuter le tuner. Plus l'instance a été exécutée longtemps, meilleurs seront les conseils fournis par MySQL Tuner.
Pour installer MySQL Tuner, lancez la commande suivante :
emerge dev-db/mysqltuner
Pour exécuter MySQL Tuner, entrez simplement :
mysqltuner
Veuillez noter que cet outil est conçu pour fournir des suggestions de configuration et constitue un excellent point de départ. Il serait prudent d'effectuer des recherches supplémentaires pour régler les configurations en fonction de la ou des applications utilisant MySQL.
Plus d'informations
Vous pouvez consulter les ressources suivantes pour plus d'informations sur ce sujet. Bien que ceux-ci soient fournis dans l'espoir qu'ils seront utiles, veuillez noter que nous ne pouvons pas garantir l'exactitude ou l'actualité des documents hébergés en externe.
- Manuel de référence de MySQL 5.1
- Manuel PHP MySQL
- Exemples Perl DBI pour DBD::mysql
- Guide de l'utilisateur de MySQLdb