インストール時間を節約するために、公式の mysql docker イメージを使用して mysql を起動しました。 合格 次のようにコードをコピーします。 $ 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に変更することです。 [クライアント] デフォルトの文字セット=utf8mb4 [mysqld] 文字セットクライアントハンドシェイク = FALSE 文字セットサーバー = utf8mb4 照合サーバー = utf8mb4_unicode_ci [mysql] デフォルトの文字セット=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:最新 正常に起動しました。問題はありません。通常、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 [mysqlダンプ] ユーザー=root パスワード='123456' [mysqld] 最大許容パケット数=8M 小文字テーブル名=1 文字セットサーバー=utf8 最大接続数=900 最大接続エラー数=600 デフォルトの文字セット=utf8 終了 終了した後、コンテナを停止し、コンテナを再起動すると、コンテナが起動できないことがわかります。 回避策 起動できない元のコンテナを削除します。新しいコンテナを再作成します。この問題の鍵となるのは、元の test.cnf ファイルにエラーがあることです。元の設定ファイルの最後の行を見つけます。 デフォルトの文字セット=utf8 この行を削除します。設定ファイルを追加するときは、そのような行がないことを確認してください。 原因 MySQL の公式 Docker イメージの最新タグの下にある [mysqld] 構成セクションには、default-character-set 構成項目がありません。 docker run -it --rm mysql:tag --verbose --help > help.txt タグは、最新や 5.6 など、イメージのラベルを示します。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CentOS で RPM を使用して MySQL 5.6 をインストールするチュートリアル
解決:リンクのターゲット属性値をターゲット フレームワーク名と同じに設定するだけです。具体的な手順:...
序文最近、仕事の都合で、APP ショッピングカートの注文支払いに取り組んでいました。テスト中にバグが...
今日は、JavaScript を使用して Web ページ上にプレーヤーを作成する方法を紹介します。誰...
目次1. 適用メソッドを置き換え、関数を呼び出すときにパラメータを処理する2. 残りパラメータ(残り...
ページでビデオ タグを使用する場合は、Ogg Theora または VP8 (これに問題がない場合)...
目次概要1. アプリケーションレベルのミドルウェア2. 組み込みミドルウェア3. サードパーティミド...
1. JDKをインストールする コンピュータの動作桁を確認します。 uname -ar 2017 x...
el-form フォームにルールを追加します。データにルールを定義する定義されたルールをel-for...
コンピュータ システムが再インストールされ、侵入テスト学習環境 DVWA を再インストールする必要が...
内容Hyperledger fabric1.4環境のWindows 10でのセットアップ前提条件Wi...
数日前に仕事を始めて、Mysql をインストールしたところ、開くことができました。今日、会社に行った...
フローティング要素は、親要素の高さを縮小します。要素を float float:left/right...
explain はクエリ実行プラン情報を取得するために使用されます。 1. 文法次のように、sele...
1. js は hasOwnProperty が不正に占有されることから保護しません。オブジェクトに...
最近、Docker に MySQL をインストールしたところ、データベースの時刻がシステム時刻と 8...