Docker で MySQL サービスをデプロイする方法と、遭遇する落とし穴

Docker で MySQL サービスをデプロイする方法と、遭遇する落とし穴

最近、ポーターを学んでいます。こんなに強力なものがあったなんて、今まで知らなかった気がします。クラスメイトが参考にできるように、いじっている過程を記録しておきました。

ステップ0: Docker Hubから公式MySQLイメージを取得する

docker pull mysql

すると、待ち時間が長くなります。もちろん、ミラーアクセラレータを設定すれば、速度は少し速くなります。

ステップ1: docker imagesコマンドを使用してイメージを表示する

ここにMySQLのミラーがすでにあることがわかります

ステップ2: MySQLイメージを起動し、MySQLコンテナを作成する

使用するコマンド: docker run -d --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

ここでパラメータを説明します。

-dはバックグラウンドで実行され、現在のコマンドラインウィンドウで終了しないことを意味します

--name はコンテナに別名を与え、将来コンテナを管理するために使用できます。

-p 3307: 3307 はホストのポート 3307 を MySQL コンテナのポート 3306 にマッピングします。

-e MySQLコンテナ環境設定

MYSQL_ROOT_PASSWORD=123456は、mysql のパスワードを指定します。デフォルトのユーザー名は root です。パスワードを指定しないと起動に失敗することに注意してください。

ステップ3: 起動したmysqlコンテナを表示する

使用コマンド: docker ps

ご覧のとおり、MySQL コンテナはすでに実行されています。Docker は、管理しやすいように MySQL コンテナにコンテナ番号を割り当てます。また、設定したポート マッピングも表示されます。

このとき、MySQL コンテナは正常に動作しているのに、ポート番号しか教えてくれないのに、どうやって IP を知ることができるのか、と思う人もいるかもしれません。信じられない、あなたは悪いおじいさんです。

いやいやいや。 docker inspect -f = '{{ を使用できます。 NetworkSettings.IPAddress}}'5fef288f221f コマンドを使用して、コンテナーの IP アドレスを表示します。最後に、表示するコンテナーの ID を直接書き込むことができることに注意してください。インターネット上のそれらの人々は非常に悪く、あなたに <> を追加し、あなたを非常に落ち込ませます。私の方法に従うだけで、あなたは正しいでしょう。

もう一つ注意すべき点は、リモート管理のために外部からMySQLコンテナに接続する場合、コンテナ内のmysqlルートアカウントのホストを設定し、ワイルドカード%に変更して、どのホストでもMySQLに接続できるようにする必要があることです。具体的な方法は次のとおりです。

MySQlコンテナに入ります。docker execコマンドを使用します。-itはパラメータで、bashは対話型インターフェースを作成することを意味します。

MySQL サーバーにログインします。root ユーザーを使用して MySQL にログインします。パスワードを入力すると、MySQL にログインしたことがわかります。

show database; コマンドを使用してデータベースを表示します (最後のセミコロンを忘れないように注意してください。すべての MySQL コマンドにはセミコロンが必要です)

ご覧のとおり、データベースがリストされているので、mysql; コマンドを使用してこの MySQL データベースに入ります (少しわかりにくいですか? ハハハ、ここでの MySQL データベースはこのデータベースを指します。わかりました、まだ明確に説明していないかもしれません)

次に、show tables;コマンドを使用してすべてのテーブルを一覧表示します。

ご覧のとおり、テーブルがたくさんあります。これらはすべて MySQL の設定です。気にしないでください。変更する必要があるのは 1 つのユーザー テーブルだけです。

sql コマンドを使用します: update user set host ='%'where user ='root';

MySQLに複数のルートユーザーがいる場合、このコマンドでエラーが発生する場合があります。その場合は、次のコマンドを使用してください。

ユーザーを更新し、host='%' を設定します。ここで、user='root'、host='localhost' です。

上記の手順を設定したら、接続をテストできます。接続できれば、おめでとうございます。幸運です。

接続できない場合は、ダウンロードした MySQL イメージが mysql8 であるため、おめでとうございます。

次のエラーが発生する可能性があります

この時点で設定は完了です。exit; コマンドを使用して終了します。

リモート接続のテスト

ステップ4: MySQLコンテナにデータをインポートする

MySQL コンテナは実行されていますが、データがありません。次の方法で、docker の MySQL にデータベースをインポートできます。

まず、ファイルをコンテナにインポートします。cp の後に、インポートする SQL ファイルのパスが続きます。

#docker cp **.sql mysql:/root/
コンテナに入る#docker exec -it mysql bash
ファイルをデータベースにインポートします# mysql -uroot -p [データベース名] < ***.sql

mysql -h localhost -u root -p (mysqlを入力)
データベース abc を作成します。(データベースを作成します)
show databases; (既存のすべてのデータベースと、作成したばかりのデータベース abc が表示されます)
abc を使用します (abc データベースを入力します)
テーブルを表示; (abc データベースの下にあるすべてのテーブルを表示、空)
source /var/test.sql (データベーステーブルをインポート)
テーブルを表示します。(abc データベースの下にあるすべてのテーブルを表示すると、テーブルが表示されます)
汚染の説明(表構造設計を参照)
汚染から*を選択します。
exit (または ctrl + c) でmysqlを終了します

要約する

上記は、編集者が紹介したDockerでMySQLサービスをデプロイする方法です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Docker で MySQL データベースを使用する方法の詳細説明 (LAN でのアクセス)
  • docker で mysql に接続できない場合の解決策
  • DockerにMySQL 8.0をインストールする方法
  • DockerコンテナでのMySQLデータのインポート/エクスポートの詳細な説明
  • Docker に MySQL インスタンスをインストールして実行する
  • dockerログインmysqlエラー問題の実践記録

<<:  WeChatミニプログラムでEchartとサブパッケージを使用するための完全な手順

>>:  Windows での MySQL データベースのマスター/スレーブ構成チュートリアル

推薦する

MySQLで置換関数を実装するためのいくつかの実用的なシナリオ

REPLACE構文REPLACE(String,from_str,to_str)つまり、String...

Docker Secretの管理と使用の詳細な説明

1. Docker Secretとは1. シナリオ表示MySQL サービスなど、一部のサービスではパ...

VMware14 に CentOS 7 をインストールするグラフィック チュートリアル

CentOS の紹介CentOS は、Red Hat Linux が提供する無料で利用できるソースコ...

CSSの4種類の配置の違いの詳細な説明

フロントエンド開発でよく使われるCSSの配置方法は、位置決めには、通常位置決め、相対位置決め、絶対位...

Centos6.5 glibc アップグレードプロセスの紹介

目次シナリオ要件glibc バージョンglibcのインストールglibc ソフトリンクシナリオ要件C...

MySQL (5.6 以下) の JSON 解析の詳細な例

MySQL(5.6以下)はjsonを解析します #json 解析関数 DELIMITER $$ `j...

Linux の RPM パッケージでインストールされた xinetd ベースのサービスの管理

目次序文1. xinetdサービスに基づく起動管理(1)Telnetサービスのインストール(2)Te...

vue.config.js からプロジェクト最適化までの vue2.x 構成

目次序文vue.config.js 構成オプションパッケージサイズを縮小するためのパッケージの最適化...

この記事では、MySQLのマスタースレーブ同期の原理を説明します。

目次MySQL マスタースレーブ同期原理の簡単な分析1. マスタースレーブとは何ですか? 2. 主従...

CSSのoutline-offsetプロパティを使用してプラス記号を実装する

次のような初期コードがあると仮定します。 <!DOCTYPE html> <htm...

MySQL 5.7.18 Green Edition のダウンロードとインストールのチュートリアル

この記事では、MySQL 5.7.18のグリーンバージョンをダウンロードしてインストールする詳細な手...

使用場所によって混乱しやすいXHTMLタグ

<br />jb51.net では、常に記事のセマンティクスを重視してきましたが、HTM...

主軸上のFlex子要素の比率を制御する方法

背景フレックス レイアウトにより、配置とスペースの割り当てがより効果的に実現されます。最近、flex...

MySQL バックアップ スクリプトの書き方

序文:データベースのバックアップの重要性は、特にデータの損失が深刻な結果を招く可能性がある実稼働環境...