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はマーキーを使用してテキストを左右にスクロールします

推薦する

Centos 7.4 サーバーの時刻同期設定方法 [NTP サービスに基づく]

この記事では、CentOS 7.4 サーバーで時刻同期を構成する方法について説明します。ご参考までに...

Dockerがsudo操作を使用する必要がある問題を解決する

手順は以下のとおりです1. dockerグループを作成する: sudo groupadd docke...

vue3.0 で要素を使用するための完全な手順

序文: vue3.0の要素フレームワークを使用します。要素はvue2.0をサポートしており、vue3...

データベースの冗長フィールドを合理的に使用する方法

privot は、多対多の関係の中間テーブルです。 PT5 フレームワークは自動的に privot ...

MySQL 8.0.12 のインストールと設定のチュートリアル

この記事はMySQL 8.0.12のインストールと設定に関する詳細なチュートリアルを記録しています。...

CSS3 オーバーフロープロパティの説明

1. オーバーフローOverflow はオーバーフロー(コンテナ)です。コンテンツがコンテナを越える...

Windows/Mac で Docker を使用して MySQL (utf8 を含む) をインストールする

目次1. MacへのDockerのインストール2. Win 10 システムでの Docker のイン...

Windows Server 2008 R2 リモート デスクトップのポート 3389 を変更する方法

Windows サーバー リモート デスクトップのデフォルトのポート番号は 3389 です。職場でサ...

フロントエンドは画像を遅延ロードする方法を知っている必要があります(3つの方法)

目次1. 遅延読み込みとは何ですか? 2. 遅延読み込みを実装する🌄: 2.1 最初の方法: 2.2...

WeChatアプレットがSMSログインを実装

目次1. インターフェース効果のプレビュー2.uViewのインストール3.uViewの設定3.1 m...

MySQL における in と exists の違いの詳細な説明

1. 事前に準備する便宜上、ここで 2 つのテーブルを作成し、そこにいくつかのデータを追加します。果...

LinuxでIPアドレスを手動で設定するための詳細な手順

目次1.まずネットワークカードの設定ディレクトリに入る2. ifcfg-ens33ネットワークカード...

ルート変更を監視するJavaScriptの詳細な説明

目次歴史pushState() メソッドpushState() の使用シナリオreplaceStat...

jQueryは居住地を選択するためのドロップダウンボックスを実装します

居住地を選択するためのドロップダウンボックスをjQueryで実装するための具体的なコードは参考までに...