MySQLスタートアップが起こした事故の実録

MySQLスタートアップが起こした事故の実録

MySQL はポートをリッスンした状態で起動しますが、サービスは完全には起動していません。

背景

MySQL が起動すると、最初にデータベースが初期化されます。MySQL が完全に起動した後、2 回目のデータベースの初期化が行われます。

データベースを初めて初期化するときは、--skip-networking (このオプションは MySQL の TCP/IP 接続方法を無効にします) を使用して、初期化のために MySQL を起動します。

初期化が完了したら、--skip-networking オプションをオフにして MySQL を再起動します。

2 回目にデータベースを初期化するときに、ルート パスワードを設定します。

MySQLが完全に起動したかどうかを確認する方法

MySQL に積極的に接続してみてください。接続が成功すると、サービスが完全に開始されたことを示します。

mysql -hlocalhost -P3306 -uroot

事故

上記の判定方法はソケットを使用してデータベースに接続しますが、初回のみMySQLのTCP/IP接続方法を禁止しているため、

したがって、最初のデータベースの初期化が完了する前に、2 番目のデータベースの初期化が実行された可能性があります。

2 回目のデータベース初期化では、最初のデータベース初期化よりも早くルート パスワードが設定されるため、データベースに接続できず、最初の初期化が失敗します。

最後に、TCP/IP 接続方法が有効になっていなかったため、アプリケーションはデータベースに接続できませんでした。

最初の変更

データベースに接続するには -h127.0.0.1 を使用します

MySQL -h127.0.01 -P3306 -uroot

ただし、root ユーザーのホストが localhost に設定されているため、127.0.0.1 は接続が許可されず、最初の変更は失敗します。

2回目の改訂

wait-for-it.sh 127.0.0.1:3306 --timeout=300

mysql -hlocalhost -P3306 -uroot

wait-for-it.sh は、127.0.0.1:3306 がリスニング状態にあるかどうかを検出するために使用されます。リスニング状態にある場合、最初のデータベースの初期化が完了したことを意味します。

次に、localhost を使用してデータベースへの接続を試みます。

オリジナルリンク: k8scat.com/posts/wait-…

要約する

MySQL 起動による事故に関する記事はこれで終了です。MySQL 起動による事故についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • mysqlサービスが起動しない場合の解決策
  • MySQL を起動できない場合のよくある問題の概要
  • MySQL5 インストール後に起動できない(サービスを開始できない)問題の解決方法まとめ
  • CentOS 7 での MySQL サービスの起動失敗に対する簡単な解決策
  • MySQL 起動エラー 1053 の解決方法
  • Windows が MySQL サービスを開始できず、エラー 1067 を報告する場合の解決策
  • エラー 1067 で MySQL が起動しない問題を解決する方法
  • mysql の認証、起動、およびサービスの起動のための一般的なコマンド

<<:  Sitemesh チュートリアル - ページ装飾技術の原理と応用

>>:  HTMLはマーキーを使用してテキストを左右にスクロールします

推薦する

WeChatアプレットは日付と時刻に基づいた並べ替え機能を実装

最近、小さなプログラム プロジェクトを引き継いだのですが、リストを日付と時刻で並べ替えるという要件が...

Vue の v-model ディレクティブと .sync 修飾子の違いの詳細な説明

目次vモデル.sync微妙な違い機能シナリオを要約します。 vモデル <!--親コンポーネント...

MySQL データベース開発の 36 の原則 (要約)

序文これらの原則は実際の戦闘から要約されています。あらゆる原則の背後には血なまぐさい教訓があるこれら...

Docker イメージのローカル Elasticsearch ポート操作へのアクセス

dockerスタックによってデプロイされたイメージサービスを使用すると、イメージを入力した後、理論的...

VUEウォッチリスナーの基本的な使い方の詳しい説明

目次1. 次のコードはwatchの簡単な使用法です2. 即時監視3. ハンドラメソッド4. 深い属性...

ラムダ式の原則と例

ラムダ式ラムダ式 (クロージャとも呼ばれる) は、Java 8 のリリースを推進した最も重要な新機能...

MySQLが間違ったインデックスを選択する理由と解決策

MySQL では、テーブルに複数のインデックスを指定できますが、ステートメントの実行時に、使用するイ...

Tencent Cloudでhive3.1.2を構築する方法を教えます

環境の準備操作を開始する前に、hadoop バージョンがインストールされていることを確認してください...

IDEA が Docker を統合してリモート展開を実現するための手順

1. Dockerサーバーへのリモートアクセスを有効にするdocker が配置されているリモート サ...

ページキャッシュを無効にするいくつかの方法を共有する

本日、開発中に、顧客からページをキャッシュしないように要求される方法に遭遇しました。調べたところ、ペ...

JS ES6 非同期ソリューション

目次最初にコールバック関数を使用するes6 非同期処理モデルこの非同期モデルに合わせたAPI: pr...

1 つの記事で v-model とその修飾子を学ぶ

目次序文v-model の修飾子:怠け者トリム番号さまざまな入力タイプやその他の要素での v-mod...

MySQL の DDL と DML についての簡単な説明

目次序文1. DDL 1.1 データベース操作1.2 データテーブルの操作1.3 一般的なデータ型1...

Centos8でdockerがインストールできない問題の解決方法

問題 [root@zh ~]# [root@zh ~]# [root@zh ~]# yum -y d...

Docker で Python スクリプトを実行する方法

まず、Docker イメージ用の特定のプロジェクト ディレクトリを作成します。例: mkdir /h...