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

推薦する

TypeScript をインストール、使用、自動コンパイルする方法に関するチュートリアル

1. TypeScriptの紹介前回の記事ではTypeScriptのインストール、使い方、自動コンパ...

MySQL のロックに関する問題

ロックの分類:データ操作の粒度から:テーブルロック:操作時にテーブル全体がロックされます。行ロック:...

5分でWebRTCビデオチャットを構築する

前回の記事では、Ubuntu 上の webrtc ベースの多人数ビデオチャット サービスの詳細なコー...

ポータルサイトのフォーカス画像のデザインに関するいくつかの結論

フォーカス画像は、画像、テキスト、動的なインタラクティブ効果を統合したコンテンツを表示する方法です。...

Linux で fdisk を使用してディスクをパーティション分割する方法

Linux パーティションでよく使用されるコマンド: fdisk、MBR パーティション テーブルの...

nginx を使用して特定のインターフェース (URL) をブロックする方法

1. はじめに場合によっては、Web プラットフォームがオンラインになった後、サービス インターフェ...

MySQLで大きなテーブルをエレガントに削除する方法について簡単に説明します

目次1. 切り捨て操作1.1 MySQL truncate はどのような操作を実行しますか? 1.2...

CSS と Bootstrap アイコンを使用して、上下にジャンプするインジケーター矢印のアニメーション効果を作成します。

ページが非常に長い場合は、下にさらにコンテンツがあることをユーザーに知らせるために矢印が必要になるこ...

Vue.jsは9グリッド画像表示モジュールを実装します

Vue.js を使用して、クリックしてズームできる 9 グリッドの画像表示モジュールを作成しました。...

tomcat8の最新のLinuxインストールプロセス

ダウンロード参考:ダウンロードするコアパッケージを選択してくださいダウンロード後、ファイルをサーバー...

表に斜めヘッダー効果を出す5つの方法

誰もがテーブルをよく知っているはずです。コード内でよく見かけます。テーブルにスラッシュ ヘッダーを追...

位置のいくつかの巧妙な応用の詳細な説明:sticky スティッキーポジショニング

背景: position:sticky はスティッキー配置とも呼ばれます。スティッキー配置の要素は、...

Docker コンテナのマウントディレクトリ操作の表示

Dockerコンテナのマウントディレクトリ情報のみを表示する docker 検査 --format ...

MySQL で複数のテーブルにビューを作成する方法

MySQLでは、2つ以上のベーステーブルにビューを作成します。学生テーブルとstu_infoテーブル...

Dockerはローカルイメージとコンテナの保存場所を設定します

指定したサイズより大きいファイルを検索するには、find コマンドを使用します。 検索 / -typ...