8.3------Docker配備アプリケーション-Mysql 8.0
5427 ワード
10.1 Docker配備アプリケーション-Mysql 8.0
推奨Mysql 8.0、それは更に多くの新しい特性を持って、例えばNO SQLを支持して、原生の分布式、UTF 8-mb 4を支持して、myisamを取り消しました.最も重要なのは性能の大幅な向上である.
インストール環境
Linuxシステム:Ubuntu 16.04 dockerバージョン:18.09.5 mysqlバージョン:8.0.16
配置の考え方 OSはrootユーザに切り替わりdocker を起動する. mysql 8.0ミラー を引くコンテナの作成と起動(重要) 考え方:Mysqlが利用可能で、以下の点を保証する必要があります.ポートオープン:3306対外オープン->マッピングが必要なポート データ永続化:プロファイル、ストレージ情報の消失なし->ローカルボリュームをマウントする必要がある 中国語対応:符号化パラメータの設定->パラメータの設定 初期化ROOTパスワード:-e MYSQL_ROOT_PASSWORD=root 無停止:restart=always デーモン運転:-d 以上の考え方に基づいて、Mysqlコンテナ作成コマンドは以下の通りです.
これで終わりです
テクニック
コンテナのファイルをホストにコピーする方法
理由:Mysqlコンテナを作成する場合、ホストディレクトリをコンテナ構成ディレクトリにマウントします.-v/usr/local/docker/mysql/conf:/etc/mysql/conf.dこれはいくつかの問題を引き起こします.ホストディレクトリが空であるため、コンテナの元の構成情報も空にされ、Mysqlコンテナのconf.d/mysqlをどのようにするかという問題が生じる.cnfコピー
ターゲット:コンテナ内のファイルをホストにコピーする考え方:一時Mysqlコンテナを作成する->ホストボリュームにコンテナのプロファイルをコピーする->一時コンテナを破棄する->Mysqlコンテナ作成コマンドを再実行する
操作ホストのマウントボリュームディレクトリ/usr/local/docker/mysql/conf にアクセスコピーコマンド:docker cp mysql:/etc/mysql.
ただし、Mysql 8については.0、必要ない、必要ない、必要ない、
なぜならcnfは空です...具体的な検証は以下の通りです.まず一時MYSQL容器を起動し、 に入る./etc/mysql/my.cnf /etc/mysql/conf.d/mysql.cnf
その他の資料公式ガイド:Docker Hub for Mysql mysql 8:クライアント接続caching-sha 2-password問題 mysql 8をインストールするときにパスワード暗号化を選択し、その後navicateなどのクライアント接続を使用すると、caching-sha 2-passwordへの接続をクライアントに提示します.クライアントがこのプラグインをサポートしていないため、以下のように変更できます.
推奨Mysql 8.0、それは更に多くの新しい特性を持って、例えばNO SQLを支持して、原生の分布式、UTF 8-mb 4を支持して、myisamを取り消しました.最も重要なのは性能の大幅な向上である.
インストール環境
Linuxシステム:Ubuntu 16.04 dockerバージョン:18.09.5 mysqlバージョン:8.0.16
配置の考え方
$ su root
$ docker pull mysql:8.0.16
docker pull mysql:8.0.16
root@instance-o70no2nw:~# su root
root@instance-o70no2nw:~# docker pull mysql:8.0.16
latest: Pulling from library/mysql
27833a3ba0a5: Pull complete
864c283b3c4b: Pull complete
cea281b2278b: Pull complete
Digest: sha256:f5f78fe2054b4686da3fddb460eab0b53d04e067c977d6a02fcb5ec25375ed15
Status: Downloaded newer image for mysql:8.0.16
$ docker run \
--name mysql \
--restart=always \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-v /usr/local/docker/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-d mysql:8.0.16 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
これで終わりです
テクニック
コンテナのファイルをホストにコピーする方法
理由:Mysqlコンテナを作成する場合、ホストディレクトリをコンテナ構成ディレクトリにマウントします.-v/usr/local/docker/mysql/conf:/etc/mysql/conf.dこれはいくつかの問題を引き起こします.ホストディレクトリが空であるため、コンテナの元の構成情報も空にされ、Mysqlコンテナのconf.d/mysqlをどのようにするかという問題が生じる.cnfコピー
ターゲット:コンテナ内のファイルをホストにコピーする考え方:一時Mysqlコンテナを作成する->ホストボリュームにコンテナのプロファイルをコピーする->一時コンテナを破棄する->Mysqlコンテナ作成コマンドを再実行する
操作
ただし、Mysql 8については.0、必要ない、必要ない、必要ない、
なぜならcnfは空です...具体的な検証は以下の通りです.
$ docker run -it --rm mysql:8.0.16 bash
root@200a86d29e7c:/etc/mysql# cat my.cnf
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/
root@200a86d29e7c:/etc/mysql/conf.d# ls
docker.cnf mysql.cnf
root@200a86d29e7c:/etc/mysql/conf.d# cat mysql.cnf
# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0,
# as published by the Free Software Foundation.
#
# This program is also distributed with certain software (including
# but not limited to OpenSSL) that is licensed under separate terms,
# as designated in a particular file or component or in included license
# documentation. The authors of MySQL hereby grant you an additional
# permission to link the program and your derivative works with the
# separately licensed software that they have included with MySQL.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License, version 2.0, for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Client configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysql]
root@200a86d29e7c:/etc/mysql/conf.d#
その他の資料
#
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# (mysql_native_password )
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';