コピーして貼り付けて従うだけですぐに完了します。詳細な手順を確認する必要はありません
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
貼り付け次の内容を保存してください。
[client] default_character_set=utf8 [mysqld] collation_server=utf8_general_ci character_set_server=utf8
docker restart mysql
ツールを使用してテストします (ポートを開くことを忘れないでください)。root ユーザーのパスワードは 123456
docker search mysql
最初に検索したもので十分です。バージョンを指定しない場合は、私は 5.7
docker pull mysql:5.7
内部と外部の両方でポート 3306 を使用します (ホストのポート 3306 は占有されていません。たとえば、ホストには mysql がインストールされています)、root ユーザーを指定します。パスワードは 123456
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d --name mysql mysql:5.7
コンテナ内でmysqlに接続してデータベースを作成し、mysqlが正常に使えるかテスト
#docker exec -it mysql /bin/bash#テーブルを作成してデータを挿入すればOK 接続ツールをローカルで使用して接続しますローカルで使用する Navicat ツールへの接続、レコードの挿入、クエリの実行は問題ありません ただし、中国語を挿入するとエラーが報告されます 文字セットの変更中国語のエラーは文字セットの問題である可能性があります。確認してください。コンテナ内の文字セット (クライアント ツールは一部の文字セットをローカル文字セットに処理します)、それらのほとんどが Not utf8
show variables like 'character%';であることがわかります。 mysql 設定ファイルはまだコンテナ内にあり、ホストにマッピングされていません。変更するのはあまり便利ではなく、安全でもありません。コンテナを削除しても、コンテナ データ ボリュームを使用する必要があります。
現時点では、理解できない場合は、以前のブログ投稿を確認してください: ここをクリックしてくださいコンテナ データ ボリュームを使用して、mysql データ、構成ファイル、およびログをマウントします
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
ログ、データ、設定ファイルの 3 つのディレクトリをマウントします
mysql 設定ファイルを作成します
設定ファイルディレクトリにmy.cnf設定ファイルを新規作成し、以下の内容を記述し、クライアントと mysql サーバーのエンコーディングを utf8
[client]default_character_set=utf8[mysqld]collation_server=utf8_general_cicharacter_set_server=utf8
設定ファイルを変更した後、mysql コンテナを再起動し、再度コンテナに入って文字セットを表示すると、すべてが正しいことがわかります。
ライブラリ テーブルを再度作成し、中国語のテストを挿入すると、正常に挿入されます。
そして mysqlデータディレクトリもローカルにマウントされているため、コンテナを削除して新たにコンテナを作成した場合でも、同じデータボリュームを使用して以前に作成したデータベーステーブルを復元できます。
以上がdockerでmysqlをインストールする方法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。