MySQL est un système de gestion de base de données populaire utilisé pour les applications Web et serveur. Ce guide présentera comment installer, configurer et gérer MySQL sur un Linode exécutant Ubuntu 14.04 LTS (Trusty Tahr).
Nous vous recommandons d'utiliser un High Memory Linode avec ce guide.
Remarque Ce guide est écrit pour un utilisateur non root. Les commandes qui nécessitent des privilèges élevés sont préfixées parsudo
. Si vous n'êtes pas familier avec lesudo
commande, vous pouvez consulter notreGuide des utilisateurs et des groupes.
Avant de commencer
-
Si vous ne l'avez pas déjà fait, créez un compte Linode et une instance de calcul. Consultez nos guides Premiers pas avec Linode et Création d'une instance de calcul.
-
Suivez notre guide Configuration et sécurisation d'une instance de calcul pour mettre à jour votre système et configurer votre nom d'hôte. Vous pouvez également définir le fuseau horaire, créer un compte utilisateur limité et renforcer l'accès SSH.
Pour vérifier votre nom d'hôte, exécutez :
hostname hostname -f
La première commande doit afficher votre nom d'hôte court et la seconde doit afficher votre nom de domaine complet (FQDN) si vous en avez un attribué.
Installer MySQL
sudo apt-get install mysql-server
Au cours du processus d'installation, vous serez invité à définir un mot de passe pour l'utilisateur racine MySQL, comme indiqué ci-dessous. Choisissez un mot de passe fort et conservez-le dans un endroit sûr pour référence future.
MySQL se liera à localhost (127.0.0.1) par défaut. Veuillez consulter notre guide d'accès à distance MySQL pour plus d'informations sur la connexion à vos bases de données à l'aide de SSH.
Remarque Autoriser un accès illimité à MySQL sur une adresse IP publique n'est pas conseillé, mais vous pouvez changer l'adresse sur laquelle il écoute en modifiant lebind-address
paramètre dans/etc/my.cnf
. Si vous décidez de lier MySQL à votre adresse IP publique, vous devez implémenter des règles de pare-feu qui autorisent uniquement les connexions à partir d'adresses IP spécifiques.
Renforcer le serveur MySQL
Exécutez le script mysql_secure_installation pour résoudre plusieurs problèmes de sécurité dans une installation MySQL par défaut :
sudo mysql_secure_installation
Vous aurez le choix de modifier le mot de passe root MySQL, de supprimer les comptes d'utilisateurs anonymes, de désactiver les connexions root en dehors de localhost et de supprimer les bases de données de test. Il est recommandé de répondre oui à ces options. Vous pouvez en savoir plus sur le script dans le manuel de référence MySQL.
Utiliser MySQL
L'outil standard pour interagir avec MySQL est le mysql
client, qui s'installe avec le mysql-server
emballer. Le client MySQL est accessible via un terminal.
Connexion racine
-
Pour vous connecter à MySQL en tant qu'utilisateur root :
mysql -u root -p
-
Lorsque vous y êtes invité, entrez le mot de passe root que vous avez attribué lors de l'
mysql_secure_installation
le script a été exécuté.L'invite du moniteur MySQL vous sera alors présentée :
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.45 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
-
Pour générer une liste de commandes pour l'invite MySQL, entrez
\h
. Vous verrez alors :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. For server side help, type 'help contents' mysql>
Créer un nouvel utilisateur et une nouvelle base de données MySQL
-
Dans l'exemple ci-dessous,
testdb
est le nom de la base de données,testuser
est l'utilisateur, etpassword
est le mot de passe de l'utilisateur.1 2 3
create database testdb; create user 'testuser'@'localhost' identified by 'password'; grant all on testdb.* to 'testuser';
Vous pouvez raccourcir ce processus en créant l'utilisateur while attribution des autorisations de base de données :
1 2
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
Quittez MySQL.
exit
Créer un exemple de tableau
-
Reconnectez-vous en tant que
testuser
.mysql -u testuser -p
-
Créez un exemple de table appelée
customers
. Cela crée une table avec un champ ID client de typeINT
pour entier (auto-incrémenté pour les nouveaux enregistrements, utilisé comme clé primaire), ainsi que deux champs pour stocker le nom du client.1 2
use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Puis quittez MySQL.
exit
Réinitialiser le mot de passe racine MySQL
Si vous oubliez votre mot de passe root MySQL, il peut être réinitialisé.
-
Arrêtez l'instance actuelle du serveur MySQL :
sudo service mysql stop
-
Utilisez dpkg pour relancer le processus de configuration suivi par MySQL lors de la première installation. Il vous sera à nouveau demandé de définir un mot de passe root.
sudo dpkg-reconfigure mysql-server-5.5
-
Puis démarrez MySQL :
sudo service mysql start
Vous pourrez maintenant vous reconnecter en utilisant mysql -u root -p
.
Régler MySQL
MySQL Tuner est un script Perl 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 fonctionné longtemps, meilleurs seront les conseils donnés par MySQL Tuner.
-
Installez MySQL Tuner à partir des dépôts d'Ubuntu :
sudo apt-get install mysqltuner
-
Pour l'exécuter :
mysqltuner
Le nom et le mot de passe de l'utilisateur racine MySQL vous seront demandés. La sortie affichera deux domaines d'intérêt :les recommandations générales et les variables à ajuster.
MySQL Tuner est un excellent point de départ pour optimiser un serveur MySQL, mais il serait prudent d'effectuer des recherches supplémentaires pour des configurations adaptées aux applications utilisant MySQL sur votre Linode.
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.5
- Manuel PHP MySQL
- Exemples Perl DBI pour DBD::mysql
- Guide de l'utilisateur de MySQLdb