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 データベースのマスター/スレーブ構成チュートリアル

推薦する

vue3 のさまざまな構文形式を比較したサンプルコード

デフォルトのテンプレートメソッドはvue2に似ており、コンポーネント内のセットアップ関数を使用します...

iframe タグの使用方法の詳細な説明 (属性、透明度、適応高さ)

1. iframe の定義と使用法iframe 要素は、別のドキュメントを含むインライン フレーム...

Uniappがスライディングスコアリング効果を実現

この記事では、スライディングスコアリングを実装するためのuniappの具体的なコードを参考までに共有...

HTML における相対と絶対の使用法と違いの詳細な説明

HTML における相対と絶対の違い: 正直に言うと、HTML は世界で最もシンプルな言語です。タグ言...

MySQLの誤操作後にbinlog2sqlを使用して素早くロールバックする方法の詳細な説明

序文日常の仕事や勉強では、データベースを操作するときに「不注意」によるミスを犯すことは避けられません...

LinuxカーネルとSVNバージョン間の競合の解決策

現象システムは Linux システムカーネルを正常にコンパイルできましたが、SVN をインストールし...

MySQL 起動時に報告される ERROR:2002 の分析と解決方法

序文この記事は主にMySQL起動エラー2002の分析と解決方法を紹介しています。参考と勉強のために共...

MySQL でスロークエリログを有効にする方法

1.1 はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメ...

ウェブデザイナーが持つべき資質と能力

Web デザインは、インターネットの出現後に誕生した新興の周辺産業です。 Web ページは店頭のよう...

18 個のキラー JavaScript ワンライナー

序文JavaScript は習得が最も簡単な言語の 1 つであるため、成長と繁栄を続けており、市場に...

複数の例で HTML フォームを使用する方法

参考までに、HTMLフォームの使い方を9つの簡単な例で分析します。具体的な内容は次のとおりです。 1...

JavaScript 定期検証パスワード強度実装方法

展示する デザインパスワード強度分析パスワードは数字、文字、特殊記号で構成されていますパスワード: ...

ハイパーリンクのWebデザイン原則

<br />関連記事: Web コンテンツ ページ作成のための 9 つの実用的なヒント、...

WeChatアプレットはシンプルな計算機を実装する

WeChatアプレットの簡単な計算機は参考用です。具体的な内容は次のとおりです。 1. はじめに1....

Nginx インストール エラーの解決方法

1. nginx-1.8.1.tar.gzを解凍する2. fastdfs-nginx-module-...