ホームページ データベース mysql チュートリアル Docker公式mysqlイメージのカスタム設定方法

Docker公式mysqlイメージのカスタム設定方法

May 27, 2023 pm 01:34 PM
mysql docker

コードをコピーします コードは次のとおりです:

$ docker run --name some-mysql -e mysql_root_password=my-secret-pw -d daocloud.io/mysql:tag

some-mysql コンテナの名前を指定し、my-secret-pw で root ユーザーのパスワードを指定し、tag パラメータで必要な mysql のバージョンを指定します。

この方法では、データは永続化されないため、起動パラメータにマウントする必要があります。 ローカル ディレクトリ

したがって、データベースはこのように実行され続けますが、最近プログラムが絵文字表現をサポートする必要があるため、mysql の文字セットを変更する必要があります。

コードをコピーします コードは次のとおりです:

$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e mysql_root_password=my- Secret-pw -d daocloud.io/mysql:tag

この時点で、カスタム構成ファイルをマウントできます。公式ドキュメントには、

mysql サービスが開始されると、次のようになります。 /etc/mysql/my.cnf このファイルは、構成ファイルとして、/etc/mysql/conf.d ディレクトリ内の .cnf サフィックスを持つすべてのファイルをインポートします。これらのファイルは、/etc/mysql/my.cnf ファイルの設定を拡張またはオーバーライドします。したがって、独自の構成ファイルを作成し、mysql コンテナ内の /etc/mysql/conf.d ディレクトリにマウントできます。

したがって、データベース構成を変更する最も簡単な方法は、ホスト マシン上に新しい構成ファイルを作成し、それを 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
ログイン後にコピー

に変更し、そのファイルを対応する Docker コンテナーにコピーすることです。フォルダー

docker cp /home/my.cnf(宿主机文件路径) [容器id]:/etc/mysql/mysql.conf.d
ログイン後にコピー

最後に、docker stop および start コマンドを使用してコンテナーを再起動し、カスタム構成を読み込みます。

docker の公式 mysql イメージで構成されたコンテナーが問題を開始できません

mysql の docker イメージを使用しています。まずイメージを作成して開始します。

# docker run --name mysql-b \
> -p 33002:3306 -v /zc/mysql/datadir-b:/var/lib/mysql \
> -e mysql_root_password='123456' -d mysql:latest
ログイン後にコピー

通常どおりに開始します。問題ありません。通常、mysql を使用するときはパラメータを設定する必要があります。パラメータを設定するには、まずコンテナの bash に入り、次の操作を実行する必要があります。

docker exec -it mysql-b bash
ログイン後にコピー

mysql のデフォルトの設定ファイルは /etc/mysql/my.cnf ファイルです。構成をカスタマイズする場合は、/etc/mysql/conf.d ディレクトリに .cnf ファイルを作成することをお勧めします。新しく作成されるファイルには、サフィックスが cnf であれば任意の名前を付けることができます。新しく作成されたファイル内の構成項目は、/etc/mysql/my.cnf 内の構成項目をオーバーライドできます。 mysql の公式 docker イメージには vim エディターが提供されていないため、cat コマンドを使用してファイルを生成し、コンテンツを追加しました:

# 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
ログイン後にコピー

終了後、コンテナーを停止し、コンテナーを再起動しました。コンテナを起動できなかったということです。

#解決策

起動できない元のコンテナを削除します。新しいコンテナを再作成します。問題の核心は、元の test.cnf ファイルにエラーがあることです。元の構成ファイルの最後の行を見つけます:

default-character-set=utf8
ログイン後にコピー

この行を削除します。構成ファイルを追加するときに、そのような行がないことを確認してください。

問題の原因

mysql の公式 docker イメージでは、latest というラベルの下に、[mysqld] にデフォルト文字セットがありません。 ] 設定セクションのこの設定項目。

すべての構成項目を表示する場合は、次のコマンドを使用し、パイプラインを使用して出力ヘルプを help.txt ファイルに追加できます。

docker run -it --rm mysql:tag --verbose --help > help.txt
ログイン後にコピー
ここで、タグはイメージのラベルを表します。最新や 5.6 など。


以上がDocker公式mysqlイメージのカスタム設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのビッグデータ構造処理スキル PHPのビッグデータ構造処理スキル May 08, 2024 am 10:24 AM

PHPのビッグデータ構造処理スキル

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? Jun 03, 2024 pm 08:11 PM

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか?

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? Jun 03, 2024 pm 12:19 PM

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか?

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? Jun 02, 2024 pm 02:26 PM

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか?

PHPマイクロサービスコンテナ化のアジャイル開発と運用 PHPマイクロサービスコンテナ化のアジャイル開発と運用 May 08, 2024 pm 02:21 PM

PHPマイクロサービスコンテナ化のアジャイル開発と運用

DeepSeekをインストールする方法 DeepSeekをインストールする方法 Feb 19, 2025 pm 05:48 PM

DeepSeekをインストールする方法

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は?

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法

See all articles