Maison > Article > base de données > Quelle est la méthode pour installer MySQL avec Docker
Copiez-collez et suivez-le pour terminer rapidement, vous n'avez pas besoin de vérifier les étapes détaillées
docker pull mysql:5.7
docker run -d -p 3306:3306 --privileged=true -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
cd /usr/local/mysql/conf
vim my.cnf
Collez le contenu suivant et enregistrez
[client] default_character_set=utf8 [mysqld] collation_server=utf8_general_ci character_set_server=utf8
docker restart mysql
Utilisez l'outil pour tester (rappelez-vous pour ouvrir le port), le mot de passe de l'utilisateur root est 123456
docker search mysql
Le premier trouvé fera l'affaire. Obtenez la dernière version sans spécifier la version. . J'utilise 5.7
docker pull mysql:5.7
Utilisez le port 3306 à la fois à l'intérieur et à l'extérieur (assurez-vous que le port 3306 de votre hôte n'est pas occupé, par exemple, votre hôte a également installé MySQL), et spécifiez le mot de passe de l'utilisateur root comme 123456
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d --name mysql mysql:5.7
Connectez-vous à MySQL à l'intérieur du conteneur, créez une base de données et testez si MySQL est utilisé normalement
docker exec -it mysql /bin/bash
Créez une table et insérez des données, c'est également ok
Utilisez localement Il n'y a aucun problème de connexion à l'outil Navicat, d'insertion d'enregistrements et d'interrogation. Cependant, lors de l'insertion du chinois, une erreur de modification du caractère est signalée. set. L'erreur chinoise doit être un problème de jeu de caractères. Dans le conteneur Vérifiez le jeu de caractères (l'outil client traitera certains jeux de caractères en jeux de caractères locaux), et vous pouvez voir que la plupart d'entre eux ne sont pas utf8
show variables like 'character%';.
Maintenant, le fichier de configuration mysql est toujours dans le conteneur et n'est pas mappé sur l'hôte, il n'est pas très pratique à modifier et ce n'est pas sûr si le conteneur est supprimé, il aura disparu
À ce moment-là, vous. devez utiliser le volume de données du conteneur
Si vous ne le savez pas, vous pouvez consulter le billet de blog précédent : Cliquez iciUtilisez le volume de données du conteneur pour monter Charger les données MySQL, les fichiers de configuration et les journauxSupprimer le conteneur. ci-dessus et créez un nouveau conteneur. Cette fois, la commande est la suivantedocker run -d -p 3306:3306 --privileged=true -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7Montez trois répertoires, à savoir les journaux, les données et les fichiers de configuration
Créez le fichier de configuration de mysql
Le répertoire du fichier de configuration mysql a été monté ci-dessus, et vous pouvez utiliser directement le répertoire correspondant sur l'hôte. Créez un nouveau fichier de configuration my.cnf dans le répertoire du fichier de configuration, écrivez le contenu suivant et configurez le client et le serveur mysql. L'encodage est utf8
[client]default_character_set=utf8[mysqld]collation_server=utf8_general_cicharacter_set_server=utf8
.
Après avoir modifié le fichier de configuration, redémarrez le conteneur mysql, entrez à nouveau dans le conteneur pour afficher le jeu de caractères, vous pouvez voir que tout est correctCréez à nouveau la table de base de données, insérez le test chinois, insérez avec succès
Et le répertoire de données mysql a également été monté localement. Même si vous supprimez le conteneur et créez un nouveau conteneur, en utilisant le même volume de données, vous pouvez restaurer la table de base de données précédemment créée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!