Copier le code Le code est le suivant :
$ docker run --name some-mysql -e mysql_root_password=my-secret-pw -d daocloud.io/mysql:tag
some-mysql précise le nom du conteneur, my-secret -pw spécifie le mot de passe de l'utilisateur root et le paramètre tag spécifie la version de mysql souhaitée
De cette façon, les données ne sont pas conservées, le répertoire local doit donc être monté dans les paramètres de démarrage
Donc la base de données continue de fonctionner, mais en raison de récents problèmes, le programme doit prendre en charge les expressions emoji et le jeu de caractères de MySQL doit être modifié.
Copier le code Le code est le suivant :
$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e mysql_root_password=my-secret-pw -d daocloud.io /mysql : tag
Vous pouvez monter le fichier de configuration personnalisé à ce moment-là. La documentation officielle indique
Lorsque le service mysql sera démarré, /etc/mysql/my.cnf sera utilisé comme fichier de configuration, et ce fichier sera utilisé. être importé dans /etc/mysql/conf.d Tous les fichiers du répertoire avec le suffixe .cnf. Ces fichiers étendent ou remplacent la configuration dans le fichier /etc/mysql/my.cnf. Par conséquent, vous pouvez créer votre propre fichier de configuration et le monter dans le répertoire /etc/mysql/conf.d du conteneur mysql.
Donc, le moyen le plus simple de modifier la configuration de la base de données est de créer un nouveau fichier de configuration sur la machine hôte et de le changer en utf8mb4
[client] default-character-set=utf8mb4 [mysqld] character-set-client-handshake = false character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci [mysql] default-character-set=utf8mb4
Copiez ensuite le fichier dans le dossier du conteneur Docker correspondant
docker cp /home/my.cnf(宿主机文件路径) [容器id]:/etc/mysql/mysql.conf.d
Enfin, utilisez le docker stop et les commandes de démarrage pour redémarrer le conteneur Implémentation du chargement de la configuration personnalisée.
Le conteneur configuré par l'image mysql officielle de docker ne peut pas démarrer
J'utilise l'image docker de mysql. Créez et démarrez d'abord l'image :
# docker run --name mysql-b \ > -p 33002:3306 -v /zc/mysql/datadir-b:/var/lib/mysql \ > -e mysql_root_password='123456' -d mysql:latest
Démarrez normalement, pas de problème. Habituellement, lorsque nous utilisons MySQL, nous devons définir des paramètres. Pour définir les paramètres, il faut d'abord saisir le bash du conteneur et effectuer l'opération :
docker exec -it mysql-b bash
Le fichier de configuration par défaut de mysql est le fichier /etc/mysql/my.cnf. Si vous souhaitez personnaliser la configuration, il est recommandé de créer un fichier .cnf dans le répertoire /etc/mysql/conf.d. Le fichier nouvellement créé peut être nommé arbitrairement, à condition que le suffixe soit cnf. Les éléments de configuration du fichier nouvellement créé peuvent remplacer les éléments de configuration dans /etc/mysql/my.cnf. Parce que l'image docker officielle de mysql ne fournit pas d'éditeur vim, j'ai utilisé la commande cat pour générer le fichier et ajouter le contenu :
# cat >test.cnf <<eof [mysqldump] user=root password='123456' [mysqld] max_allowed_packet=8m lower_case_table_names=1 character_set_server=utf8 max_connections=900 max_connect_errors=600 default-character-set=utf8 eof
Après avoir quitté, j'ai arrêté le conteneur puis redémarré le conteneur, j'ai trouvé que le conteneur pouvait. ne soit pas démarré.
Solution
Supprimez le conteneur d'origine qui ne peut pas être démarré. Recréez un nouveau conteneur. Le nœud du problème est que le fichier test.cnf d'origine contient des erreurs. Retrouvez la dernière ligne du fichier de configuration d'origine :
default-character-set=utf8
Supprimez cette ligne. Assurez-vous simplement qu'il n'y a pas de ligne de ce type lors de l'ajout du fichier de configuration.
Cause du problème
Dans l'image Docker officielle de MySQL, sous l'étiquette Latest, il n'y a aucun élément de configuration de jeu de caractères par défaut dans la section de configuration [mysqld].
Si vous souhaitez afficher tous les éléments de configuration, vous pouvez utiliser la commande suivante et utiliser le pipeline pour placer l'aide de sortie dans le fichier help.txt :
docker run -it --rm mysql:tag --verbose --help > help.txt
où la balise représente la balise d'image, telle que Latest et 5.6.
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!