MySQL データベースの起動時間を確認する
Linux システムの systemd と mysqld_safe は、mysqld プロセスがクラッシュした後、自動的に MySQL サービスを再起動します。 kill -9 を使用して mysqld プロセスを強制終了すると、システムは自動的に再起動しますが、kill コマンドを使用するだけでは再起動されません。kill コマンドを実行すると、システムが mysqld に SIGTERM シグナルを送信するためです。 、mysql データベースが正常にシャットダウンされ、ログに次のようなレコードが表示されます:
2020-10-26T09:06:48.435181Z 0 [System] [MY- 010910] [サーバー] /usr/sbin/mysqld: シャットダウンが完了しました (mysqld 8.0.19 ) MySQL Community Server - GPL.
MySQL データベースはクラッシュ後に再起動されるため、状況がわからない場合がありますthat MySQL データベースがクラッシュしましたが、次のように mysql データベースの起動時間から手がかりを見つけることができます MySQL データベースの起動時間を確認する 4 つの方法を紹介します。
MySQL サービスのステータスを確認すると、
scutech@scutech:~$ service mysql status ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-10-21 05:54:18 NDT; 4 days ago Process: 774 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid (code=exited, status=0/SUCCESS) Process: 708 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 791 (mysqld) Tasks: 27 (limit: 2328) CGroup: /system.slice/mysql.service └─791 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
は、MySQL データベースが 4 日以上稼働していることを示します。
MySQL で稼働時間ステータスを確認してください
mysql> show global status like 'uptime'; +---------------+--------+ | Variable_name | Value | +---------------+--------+ | Uptime | 428334 | +---------------+--------+ 1 row in set (0.32 sec)
この値は秒単位です。次の日数に換算すると 4 日を超えます。
mysql> select 428334/60/60/24; +-----------------+ | 428334/60/60/24 | +-----------------+ | 4.957569444444 | +-----------------+ 1 row in set (0.01 sec)
稼働時間ステータスをクエリする別の方法は、mysqladmin バージョンを使用するか、「\s」を使用して mysql クライアントでクエリを実行することです。
ps を使用してプロセスの起動時間を確認します
ps コマンドを使用してクエリを実行すると、mysqld が 4 日、23 時間、3 分 54 秒間開始されていることがわかります
scutech@scutech:~$ ps -eo pid,user,args,etime|grep mysqld 791 mysql /usr/sbin/mysqld --daemoniz 4-23:03:54
MySQL ログを確認します
スタートアップ情報を見つけるには、キーワード「接続準備完了」を探してください。
2020-10-21T08:24:18.986765Z 0 [メモ] /usr/sbin/mysqld: 接続の準備ができました。
バージョン: '5.7.28-log' ソケット: '/ var/run/mysqld/mysqld.sock' ポート: 3306 MySQL Community Server (GPL)
MySQL データベース クラッシュの一般的な理由
MySQL データベース クラッシュの最も一般的な理由は 2 つあります。 1 つは mysql のバグで、もう 1 つは mysql のシステム リソース適用の失敗またはメモリ リークです。
MySQL のバグ
MySQL データベースがクラッシュする最も一般的な理由の 1 つは、もちろん MySQL のバグです。バグの 95% は特定の SQL に関連しています。通常、MySQL がクラッシュする前に実行された最後の SQL に問題があります。したがって、バグを見つけるときは、一般的なクエリ ログを開いて、最後の SQL に基づいて手がかりを探す必要があります。
クラッシュの原因を特定したら、通常は詳細検索を使用して MySQL バグ ライブラリ (https://bugs.mysql.com) をチェックし、同様の問題がないかどうかを確認する必要があります。自分に関係がある可能性のあるバグを見つけた場合は、それが修正されたことを確認してください。修正されている場合は、MySQL をバグが修正されたバージョンにアップグレードします。
各バージョンのリリース ノートには「修正されたバグ」セクションがあり、修正されたバグを確認できます。
MySQL がシステム リソースの適用に失敗するか、メモリ リークが発生します。
メモリが不足していたり、MySQL がシステム リソースの適用に失敗したりすると、ディスク領域がいっぱいになったり、ディスクが壊れているなど。現時点では、クラッシュの根本原因を特定する方法がいくつかあります:
MySQL エラー ログを注意深く読んでください。このログ内のプログラム デバッグ情報の一部は混乱を招くように見えるかもしれませんが、注意深く見ると、多くの場合、手がかりが見つかります;
一般クエリ ログを開き、SQL によってアクセスされた最後のテーブルまたはインデックスを見つけ、テーブルまたはインデックスを確認し、問題がある場合は再構築します。これにより通常は問題が解決します。
strace、pstack、pmap、および gdb を使用して mysqld コードを分析します。コア ダンプを開く必要がある場合があります。
CMake を使用します。オプション -DWITH_DEBUG= 1 mysqld を再コンパイルし、再コンパイルされた mysqld を実行して、トラブルシューティングのためにトレース ファイルとエラー ログを確認します。
MySQL メモリ使用量の計算
グローバル メモリ
innodb_buffer_pool_size innodb_log_buffer_size thread_cache_size table_open_cache table_defining_cache key_buffer_size
スレッド メモリ
binlog_cache_size thread_stack
シングル オペレーション メモリ
join_buffer_size read_buffer_size read_rnd_buffer_size tmp_table_size sort_buffer_size
計算式
MySQL 8 の最大メモリ使用量基準値の計算式:
SELECT ( @@innodb_buffer_pool_size + @@innodb_log_buffer_size + @@key_buffer_size + @@max_connections * (@@binlog_cache_size + @@thread_stack + @@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size + @@join_buffer_size + @@tmp_table_size ) ) / 1024 /1024 AS MAX_MEM_MB;
innodb_buffer_pool_size
- # # key_buffer_size
- max_connections*(sort_buffer_size read_buffer_size binlog_cache_size)
- max_connections*2MB
echo 1 > /proc/sys/vm/drop_caches0: 0 はシステムのデフォルト値です。これは、メモリがデフォルトでは解放されず、オペレーティング システムによって自動的に管理されることを意味します
1: 解放ページ キャッシュ
2: dentries と inode を解放する
3: すべてのキャッシュを解放する
長期的には、問題を解決するには対応するパラメーターを変更する必要があります。
mysql: 行 42、'malloc.c' でメモリ不足です
mysql: 必要な 8136 バイト (8k)、使用中のメモリ: 12481367 バイト (12189k)
エラー 2008: MySQL クライアントが実行されましたメモリ不足です。
これは通常、クライアントが受け取った返された結果セットが大きすぎることが原因です。解決策は 2 つあります:
実行中の SQL を確認して、本当に実行しているかどうかを確認してください。それほど大きな返される結果セットが必要ですか?
mysql を許可するときに --quick オプションを追加します。これにより、クライアントが一度に受け取る戻りセットが減りますが、mysqld の負荷が増加します。
以上がMySQL データベースのクラッシュの一般的な原因と解決策は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Innodbbufferpoolは、データをキャッシュしてページをインデックス作成することにより、ディスクI/Oを削減し、データベースのパフォーマンスを改善します。その作業原則には次のものが含まれます。1。データ読み取り:Bufferpoolのデータを読む。 2。データの書き込み:データを変更した後、bufferpoolに書き込み、定期的にディスクに更新します。 3.キャッシュ管理:LRUアルゴリズムを使用して、キャッシュページを管理します。 4.読みメカニズム:隣接するデータページを事前にロードします。 BufferPoolのサイジングと複数のインスタンスを使用することにより、データベースのパフォーマンスを最適化できます。

他のプログラミング言語と比較して、MySQLは主にデータの保存と管理に使用されますが、Python、Java、Cなどの他の言語は論理処理とアプリケーション開発に使用されます。 MySQLは、データ管理のニーズに適した高性能、スケーラビリティ、およびクロスプラットフォームサポートで知られていますが、他の言語は、データ分析、エンタープライズアプリケーション、システムプログラミングなどのそれぞれの分野で利点があります。

MySQLは、データストレージ、管理、分析に適した強力なオープンソースデータベース管理システムであるため、学習する価値があります。 1)MySQLは、SQLを使用してデータを操作するリレーショナルデータベースであり、構造化されたデータ管理に適しています。 2)SQL言語はMySQLと対話するための鍵であり、CRUD操作をサポートします。 3)MySQLの作業原則には、クライアント/サーバーアーキテクチャ、ストレージエンジン、クエリオプティマイザーが含まれます。 4)基本的な使用には、データベースとテーブルの作成が含まれ、高度な使用にはJoinを使用してテーブルの参加が含まれます。 5)一般的なエラーには、構文エラーと許可の問題が含まれ、デバッグスキルには、構文のチェックと説明コマンドの使用が含まれます。 6)パフォーマンスの最適化には、インデックスの使用、SQLステートメントの最適化、およびデータベースの定期的なメンテナンスが含まれます。

MySQLは、初心者がデータベーススキルを学ぶのに適しています。 1.MySQLサーバーとクライアントツールをインストールします。 2。selectなどの基本的なSQLクエリを理解します。 3。マスターデータ操作:テーブルを作成し、データを挿入、更新、削除します。 4.高度なスキルを学ぶ:サブクエリとウィンドウの関数。 5。デバッグと最適化:構文を確認し、インデックスを使用し、選択*を避け、制限を使用します。

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQLは、Web開発で広く使用されているオープンソースリレーショナルデータベース管理システムです。その重要な機能には、次のものが含まれます。1。さまざまなシナリオに適したInnodbやMyisamなどの複数のストレージエンジンをサポートします。 2。ロードバランスとデータバックアップを容易にするために、マスタースレーブレプリケーション機能を提供します。 3.クエリの最適化とインデックスの使用により、クエリ効率を改善します。

SQLは、MySQLデータベースと対話して、データの追加、削除、変更、検査、データベース設計を実現するために使用されます。 1)SQLは、ステートメントの選択、挿入、更新、削除を介してデータ操作を実行します。 2)データベースの設計と管理に作成、変更、ドロップステートメントを使用します。 3)複雑なクエリとデータ分析は、ビジネス上の意思決定効率を改善するためにSQLを通じて実装されます。

MySQLの基本操作には、データベース、テーブルの作成、およびSQLを使用してデータのCRUD操作を実行することが含まれます。 1.データベースの作成:createdatabasemy_first_db; 2。テーブルの作成:createTableBooks(idintauto_incrementprimarykey、titlevarchary(100)notnull、authorvarchar(100)notnull、published_yearint); 3.データの挿入:InsertIntoBooks(タイトル、著者、公開_year)VA


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
