Dockerはオープンソースのアプリケーションコンテナエンジンであり、開発者はアプリケーションと依存関係をポータブルコンテナにパッケージ化し、仮想化も可能な一般的なLinuxマシンに公開できます。コンテナはサンドボックスメカニズムを完全に使用し、コンテナ間にインターフェイスはありません。
上記はバイドゥ百科事典での Dockerの紹介です。Dockerの多くの利点により、製品ですぐに使用できます。最近、いくつかの技術的な事前調査が行われました。この記事では、主に CentOS7での Dockerの使用法を紹介してMySql。
https://hub.docker.comで mysqlを検索すると、結果は次のようになります。

上の赤いボックスで画像を選択し、次のコマンドを実行して画像をインストールします
docker pull mysql/mysql-server
次のコマンドを実行して、コンテナを起動します
docker run -d -p:3307:3306--name mysqltest mysql/mysql-server
コンテナが正常に起動した後は、現時点ではツールを介して MySqlに接続できません。関連する設定を行うには、 MySqlを入力する必要があります。
最初に次のコマンドを実行してコンテナログを表示し、 MySqlの rootアカウントのパスワードを見つけます
docker logs mysqltest
下の写真の赤いボックスは rootアカウントのパスワードです

次のコマンドを実行してコンテナに入ります。コンテナに入る方法はたくさんあります。https://www.cnblogs.com/xhyan/p/6593075.htmlを参照してください。
docker exec -it mysqltest bash
次に、コマンドを実行してMySqlを入力します
mysql -uroot -p
パスワードの入力を求められます。パスワードは上の図の赤いボックス内のパスワードです。下の図にウェルカムインターフェイスが表示されている場合は、パスワードが正しく、 MySqlの環境に入ったことを意味します。

ルートアカウントのパスワードを変更するには、次のようにインターネット上のパスワードを変更するための多くのSQLステートメントがあります。
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('password123');
しかし、上記のステートメントは、 MySql8.0.11バージョンでエラーを報告します

お使いのバージョンが私のものと同じ場合は、次のコードを実行して rootパスワードを変更してください
alter user 'root'@'localhost' identified by 'password123';
ルートパスワードを変更した後、次のコードを使用してmysqlデータベースに切り替えることができます
use mysql
ユーザー情報を表示する
select user,host from user

rootの hostが localhostであることがわかります。これは、 rootアカウントを外部に接続できないことを示しています。次に、新しいユーザーを作成し、関連する権限を割り当てて、外部接続の実行を許可します。
CREATE USER 'fengwei'@'localhost' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON *.* TO 'fengwei'@'localhost' WITH GRANT OPTION;
CREATE USER 'fengwei'@'%' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON *.* TO 'fengwei'@'%' WITH GRANT OPTION;
exitコマンドを2回実行して CentOSに戻り、次のコマンドを実行して MySqlコンテナを再起動すると、コンテナの再起動中に MySqlが再起動します
docker restart mysqltest
現時点では、 Sqlyogを使用してコンテナに接続しています。テストでは、次のエラーが報告されることがわかりました。

コマンドを実行してコンテナに MySqlを入力し、次の Sqlステートメントを実行します
ALTER USER 'fengwei'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password123';
SQLyogを使用してテストし、接続が成功したことを確認します。

この記事で説明する方法は最終的に正常に接続できますが、 MySqlの構成ファイルとデータはコンテナ内にあります。構成上の理由でコンテナを起動できない場合は、データコンテンツが失われるため、構成ファイルとデータを保存することをお勧めします。ストレージは[ホスト](https://cloud.tencent.com/product/cdh?from=10680)に接続されています。次の記事では、構成ファイルとデータディレクトリを MySqlのコンテナ内のホストに接続する方法を紹介します。
Recommended Posts