Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation des bases de données relationnelles MySQL sur Gentoo

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