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