GNU/Linux >> Tutoriels Linux >  >> Linux

Configurer le serveur MySQL sur le système d'exploitation Ubuntu

L'article couvrait une configuration de base du serveur MySQL® sur le système d'exploitation Ubuntu®. Il décrit comment définir le mot de passe root, créer une base de données et ajouter un utilisateur pour la base de données. Cet article examine la configuration de MySQL plus en détail afin que vous puissiez ajuster sa configuration et être prêt en cas de problème.

Rechercher les fichiers de configuration

Par défaut, vous pouvez trouver les fichiers de configuration MySQL® dans :

/etc/mysql

S'ils ne sont pas là, cependant, vous pouvez utiliser mysqld pour trouver la configuration. Exécutez la commande suivante :

$ /usr/sbin/mysqld --help --verbose

La première partie de la longue réponse décrit les options que vous pouvez envoyer au serveur lorsque vous le lancez. La deuxième partie affiche la configuration définie lors de la compilation du serveur.

Près du début de la sortie, recherchez quelques lignes qui ressemblent à l'exemple suivant :

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

Le serveur examine cette liste jusqu'à ce qu'il trouve un fichier de configuration.

fichier de configuration my.cnf

Ouvrez et examinez le fichier /etc/mysql/my.cnf fichier.

Lignes de commentaire commençant par # , documenter l'utilisation des différents paramètres. Ils affichent des détails sur l'emplacement des fichiers journaux, des fichiers de base de données et d'autres détails.

Groupes de configuration

Le fichier de configuration contient des lignes avec un seul mot entre crochets, comme [client] ou [mysqld] .Ces sections sont des groupes de configuration. Ils rendent les éléments de configuration importants plus visibles pour les programmes qui lisent le fichier de configuration.

La section de configuration du serveur est, techniquement, une collection d'outils. Cela inclut le serveur (mysqld ), leclient (mysql ), et d'autres outils. Ces programmes regardent dans my.cnf pour voir comment ils doivent se comporter.

La section de configuration du client contrôle le mysql client, et le mysqld section contrôle la configuration du serveur.

Fichiers journaux

Les fichiers journaux sont le meilleur endroit pour commencer à dépanner n'importe quel programme. Par défaut, MySQL stocke ses fichiers journaux dans le répertoire suivant :

/var/log/mysql

Vous devrez peut-être utiliser sudo pour obtenir une liste des fichiers de ce répertoire.

Si vous ne trouvez pas les journaux MySQL® dans le répertoire par défaut, vérifiez la configuration MySQL. Afficher le mon.cnf fichier et recherchez une log_error ligne, comme dans :

log_error = /var/log/mysql/error.log

Si vous ne voyez pas une telle ligne, créez-en une dans mysqld afin que MySQL® puisse utiliser son propre journal d'erreurs. Utilisez l'emplacement dans l'exemple, en créant le /var/log/mysql répertoire s'il n'existe pas déjà. Ensuite, redémarrez MySQL pour effectuer le changement.

Assurez-vous que l'utilisateur peut écrire dans le répertoire de journal choisi en contrôlant le mysql traiter. L'utilisateur exécutant le processus est défini dans la configuration utilisateur valeur pour mysqld dans my.cnf .

Paramètres réseau

Il peut y avoir un paramètre "port" sous le client et serveur rubriques de configuration. Le port sous le serveur La section contrôle le port sur lequel le serveur écoute. Le port par défaut est 3306 mais, vous pouvez le changer.

Le port dans le client indique au client à quel port se connecter par défaut. Vous voulez généralement que les deux paramètres de port correspondent.

Si vous utilisez les paramètres par défaut, vous ne verrez pas les entrées de port dans le fichier de configuration. Si vous souhaitez modifier le port, ajoutez les lignes suivantes dans les catégories appropriées :

[client]
port = 3306

[mysqld]
port = 3306

L'autre paramètre réseau à rechercher est l'adresse de liaison évaluer. Cela est généralement défini sur l'adresse de localhost, 127.0.0.1 . En se liant à localhost, le serveur garantit que personne ne peut s'y connecter depuis l'extérieur de l'ordinateur local.

Si vous exécutez votre serveur MySQL sur un ordinateur différent de votre application, vous devez vous lier à une adresse accessible à distance au lieu de l'hôte local. Modifiez le paramètre bind-address pour qu'il corresponde à votre adresse IP publique. Pour des raisons de sécurité, vous devez utiliser une adresse IP principale sur un réseau.

Si vous ne voyez pas d'adresse de liaison entrée, vous devez en mettre une dans le mysqld catégorie pour aider à contrôler l'accès au serveur :

[mysqld]
$ bind-address = 127.0.0.1

N'oubliez pas de tenir compte du nom d'hôte du client lorsque vous configurez les utilisateurs de votre base de données et de fournir un accès au pare-feu si vous réexécutez iptables .

mysqld et mysqld_safe

Dans les coulisses, il existe deux versions du serveur MySQL, mysqld et mysqld_safe . Les deux lisent les mêmes sections de configuration. Cependant, mysqld_safe lance avec plus de fonctionnalités de sécurité activées pour faciliter la récupération après un dépannage.

Les deux mysqld et mysqld_safe lire les entrées de configuration dans mysqld section. Si vous incluez un mysqld_safe section, alors seulement mysqld_safe utilise ces valeurs.

Par défaut, le service MySQL lance mysqld_safe , ce qui est approprié.

mysqladmin

Le mysqladmin L'outil vous permet d'effectuer certaines fonctions administratives à partir de la ligne de commande, que cet article n'aborde pas. Vous pourrez explorer l'outil plus en profondeur plus tard pour voir ce qu'il peut faire, en particulier si vous avez besoin de créer des scripts qui exécutent des fonctions telles que la vérification de l'état du serveur ou la création et la suppression de bases de données.

Sauvegardes

Vous disposez des options suivantes pour sauvegarder vos bases de données, en plus de l'habituelle sauvegarde de tout l'ordinateur approche. Les deux principales options consistent à copier les fichiers de la base de données ou à utiliser mysqldump .

Copie de fichier

Par défaut, MySQL crée un répertoire pour chaque base de données dans son répertoire de données, /var/lib/mysql .

Après avoir trouvé le répertoire de données, attendez un moment avant d'en faire une copie. Lorsque le serveur de base de données est actif, il écrit de nouvelles valeurs dans les tables. N'interrompez pas ce processus pour éviter de corrompre potentiellement votre sauvegarde.

Pour vous assurer que vous avez correctement copié les fichiers de la base de données, vous devez arrêter complètement le serveur MySQL avant la copie.

Vous pouvez verrouiller la base de données en lecture seule pendant la durée de la copie. Lorsque vous avez terminé, relâchez le verrou. De cette façon, vos applications peuvent toujours lire les données pendant que vous sauvegardez des fichiers.

Verrouillez les bases de données en lecture seule en exécutant la commande suivante depuis la ligne de commande :

$ mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;"

Exécutez la commande suivante pour déverrouiller la base de données lorsque vous avez terminé :

$  mysql -u root -p -e "UNLOCK TABLES;"

L'option client MySQL, -e , indique au client d'exécuter la requête entre guillemets comme si nous l'avions saisie dans le shell MySQL®.

Si vous écrivez ces commandes dans un script, vous pouvez mettre le mot de passe entre guillemets juste après -p sans espace entre les deux, comme dans les exemples suivants :

$ mysql -u root -p"password" -e "FLUSH TABLES WITH READ LOCK;"
$ mysql -u root -p"password" -e "UNLOCK TABLES;"

Assurez-vous de définir les autorisations sur ce fichier pour restreindre l'accès en lecture pour des raisons de sécurité par mot de passe.

mysqldump

Une autre approche pour sauvegarder votre base de données consiste à utiliser le mysqldump outil. Plutôt que de copier directement les fichiers de la base de données, mysqldump génère un fichier texte qui représente la base de données. Par défaut, le fichier texte contient une liste d'instructions SQL pour recréer la base de données, mais vous pouvez également exporter la base de données dans un autre format comme .CSV ou .XML . Vous pouvez lire la page de manuel pour mysqldump pour voir toutes ses options.

Les instructions générées par mysqldump aller directement à la sortie standard. Vous pouvez spécifier a pour rediriger la sortie en exécutant la commande suivante dans la ligne de commande :

$ mysqldump -u root -p demodb > dbbackup.sql

Cette commande indique à mysqldump pour recréer le demodb base de données dans les instructions SQL et de les écrire dans le fichierdbbackup.sql . Notez que les options de nom d'utilisateur et de mot de passe fonctionnent de la même manière que le client MySQL afin que vous puissiez inclure le mot de passe directement après -p dans un script.

Restauration depuis mysqldump

Restaurer un mysqldump la base de données est similaire à la façon dont vous avez créé le vidage, mais vous utilisez mysql au lieu de mysqldump , comme indiqué dans la commande de restauration suivante :

$ mysql -u root -p demodb < dbbackup.sql

Notez également que le < l'équerre change de direction. Cela fait passer la commande de la redirection de sa sortie à l'extraction de l'entrée du fichier existant. Cette entrée est envoyée au mysql commande, provoquant les instructions pour recréer la base de données.

Par défaut, les instructions SQL générées s'ajoutent aux tables de base de données existantes et ne les écrasent pas. Si vous restaurez une sauvegarde sur une base de données existante, vous devez d'abord supprimer les tables de la base de données, ou supprimer et recréer la base de données elle-même. Vous pouvez changer ce comportement en utilisant le $ --add-drop-table option avec la commande qui crée le mysqldump . Cela provoque mysqldump pour ajouter une commande aux fichiers de sauvegarde qu'il écrit qui supprime les tables avant de les recréer.

Moteur de base de données

Le moteur de base de données est le processus qui fonctionne dans les coulisses, en écrivant et en lisant des données à partir de fichiers. Vous n'avez besoin de savoir cela que si vous souhaitez exécuter une application optimisée pour un moteur de base de données particulier.

Les applications qui ont besoin de tables les créent à la demande et créent automatiquement le type de moteur. Pour voir le moteur utilisé par les tables de votre base de données, vous pouvez exécuter la commande suivante dans le shell MySQL, en modifiant demodb au nom de votre base de données. :

$ SHOW TABLE STATUS FROM demodb;

Choisir un moteur

Idéalement, vous n'aurez pas besoin de choisir un moteur. Si vous n'êtes pas très familier avec MySQL, autorisez l'application à en choisir un par défaut. Si vous écrivez l'application, utilisez le moteur par défaut jusqu'à ce que vous soyez plus à l'aise avec vos options.

Suivez les instructions de votre administrateur de base de données (DBA), si vous en avez un.

Les deux moteurs de base de données les plus utilisés avec MySQL sont MyISAM et InnoDB . Le moteur de base de données par défaut pour MySQL version 5.1 et antérieure est MyISAM , tandis que InnoDB est le moteur de base de données par défaut à partir de MySQL version 5.5.

MonISAM

Parce que MyISAM a été la valeur par défaut dans MySQL pendant un certain temps, c'est le choix le plus compatible des deux principaux moteurs.Certains types de recherches fonctionnent mieux sur MyISAM que InnoDB . Même s'il s'agit du plus ancien des deux, il peut être le meilleur choix pour un type d'application donné.

InnoDB

REMARQUE : Un DBA peut vous aider à obtenir le meilleur InnoDB performances car InnoDB nécessite de nombreux ajustements à votre environnement et à vos modèles d'accès. La configuration par défaut est optimale pour une utilisation quotidienne en développement de logiciels.

InnoDB est plus tolérant aux pannes que MyISAM et gère les plantages et la récupération avec un risque beaucoup plus faible de corruption de la base de données.

Si votre application nécessite InnoDB et que vous utilisez MySQL 5.1 ou une version antérieure, il se peut qu'il n'y ait pas encore de paramètres dans my.cnf fichier de configuration. Cela peut être un problème si vous utilisez un serveur qui n'a pas beaucoup de mémoire.

Les paramètres suivants peuvent vous aider à démarrer avec InnoDB sur un serveur partagé avec 256 Mo de RAM :

innodb_buffer_pool_size = 32M
innodb_log_file_size = 8M
innodb_thread_concurrency = 8
innodb_file_per_table

Ajoutez-les au [mysqld] section du fichier de configuration. Encore une fois, ce ne sont que des guides approximatifs. Ils peuvent vous aider à démarrer, mais ils ne sont pas optimisés. Consultez votre administrateur de base de données ou testez des modifications incrémentielles au fil du temps pour améliorer les performances.

Articles liés

  • Installer le serveur MySQL® sur le système d'exploitation Ubuntu
  • Réinitialiser un mot de passe racine MySQL®

Linux
  1. Comment configurer un serveur Web Apache

  2. Modifier le port SSH dans le système d'exploitation Linux Ubuntu

  3. Configurer Apache sur le système d'exploitation Ubuntu

  4. Accorder l'accès sudo dans Debian et le système d'exploitation Ubuntu

  5. Serveur Ubuntu :la distinction d'Ubuntu

Le guide complet pour installer MySQL sur Ubuntu

Comment changer le nom d'hôte du serveur dans Ubuntu

Comment changer le fuseau horaire sur le serveur Ubuntu 18.04 ?

Comment installer et configurer un serveur Web LAMP sur Ubuntu 18.04

Configurer la liaison réseau dans Ubuntu Server

Ubuntu 19.04 :Configurer le serveur NTP