コードをコピーします コードは次のとおりです:
$ 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
終了後、コンテナーを停止し、コンテナーを再起動しました。コンテナを起動できなかったということです。
#解決策
default-character-set=utf8
問題の原因
すべての構成項目を表示する場合は、次のコマンドを使用し、パイプラインを使用して出力ヘルプを help.txt ファイルに追加できます。
docker run -it --rm mysql:tag --verbose --help > help.txt
以上がDocker公式mysqlイメージのカスタム設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。