mysql のファイル mysql-bin.000001 とは何ですか? 削除できますか?

mysql のファイル mysql-bin.000001 とは何ですか? 削除できますか?

ポートを使用して MySQL をインストールした後、しばらくすると /var の容量が不足していることがわかりました。確認したところ、mysql-bin.000001 や mysql-bin.000002 などのファイルが容量を占有していることがわかりました。これらのファイルは何のためにあるのでしょうか?データベースの操作ログです。例えば、テーブルをUPDATEしたり、データをDELETEしたりすると、文に一致するデータがなくても、コマンドがログファイルに保存されます。また、各文の実行時間も記録されます。

これには主に 2 つの目的があります。

1: データの回復 データベースに問題があり、以前にバックアップしたことがある場合は、ログ ファイルを調べて、データベースに問題を引き起こしたコマンドを特定し、損失を回復する方法を見つけることができます。
2: マスターサーバーとスレーブサーバー間でデータを同期する マスターサーバー上のすべての操作はログに記録され、スレーブサーバーはログに基づいて操作を実行し、2 つのサーバーが同期されていることを確認できます。

治療方法は2つあります。
1: MySQL サーバーが 1 つしかない場合は、このオプションをコメント アウトするだけです。
vi /etc/my.cnf で、log-bin 行をコメントアウトし、mysql サービスを再起動します。
2: 環境がマスタースレーブサーバーの場合は、次の操作を行う必要があります。
A: 各スレーブ サーバーで、SHOW SLAVE STATUS を使用して、読み取っているログを確認します。
B: SHOW MASTER LOGS を使用して、マスター サーバーのログのリストを取得します。
C: すべてのスレーブ サーバーの中で最も古いログを決定します。これがターゲット ログです。すべてのスレーブ サーバーが更新された場合、リストの最後のログになります。
D: すべてのログをクリアしますが、スレーブ サーバーはターゲット ログと同期する必要があるため、ターゲット ログはクリアしません。

ログをクリーンアップする方法は次のとおりです。

マスターログを 'mysql-bin.010' に消去します。
'2008-12-19 21:00:00' より前のマスター ログを消去します。

スレーブ サーバーが同期されており、マスター サーバーと同じであることが確実な場合は、直接 RESET MASTER を実行してこれらのファイルを削除できます。

数日使用した後、10G のサーバー容量が 5G に減り、アップロードしたファイルは数百 MB しかなかったことがわかりました。いったい何がそんなに多くの容量を占有したのでしょうか?

Web ルート ディレクトリは /home に配置されています。すべてのファイルの合計は 300 MB 未満ですが、サーバー上で 5 GB 近くのスペースを占有しています。恐ろしいです。最終的に、段階的に確認した後、このフォルダーが多くのスペース リソースを占有していることがわかりました。

つまり、最も多くのスペースを占めるのは、mysql フォルダの下の var ディレクトリです。この中には、何があるのでしょうか? 見てみましょう:

mysql-bin.0000X ファイルが多数見つかりました。これは何でしょうか? mysql の操作ログ ファイルです。データベースは数十 MB しかありませんが、操作ログのサイズは 3 GB 近くあります。

mysql-bin.0000X ログ ファイルを削除するにはどうすればいいですか?

赤は入力されたコマンドを示します。

[root@jiucool var]# /usr/local/mysql/bin/mysql -u root -p
パスワードを入力してください: (パスワードを入力)
MySQL モニターへようこそ。コマンドは ; または /g で終わります。
MySQL接続IDは264001です
サーバーバージョン: 5.1.35-log ソース配布

ヘルプを表示するには、「help;」または「/h」と入力します。現在の入力ステートメントをクリアするには、「/c」と入力します。

mysql> reset master; (ログファイルをクリア)
クエリは正常、影響を受けた行は 0 行 (8.51 秒)

マイSQL>

さて、mysql フォルダがどのくらいの容量を占めているか確認してみましょう。

[root@jiucool var]# du -h –max-depth=1 /usr/local/mysql/
37M /usr/local/mysql/var
70M /usr/local/mysql/mysql-テスト
15M /usr/local/mysql/lib
448K /usr/local/mysql/include
2.9M /usr/local/mysql/share
7.6M /usr/local/mysql/libexec
17M /usr/local/mysql/bin
11M /usr/local/mysql/ドキュメント
2.9M /usr/local/mysql/sql-bench
163M /usr/local/mysql/

さて、見てみましょう。mysql ディレクトリ全体は 163M しか占めていません。問題ありません。mysql-bin.0000X ログ ファイルは多くのスペースを占めており、その存在は特に意味がないので、生成されないようにしましょう。

[root@jiucool var]# find / -name my.cnf

mysql 構成ファイル my.cnf が見つかり、log-bin=mysql-bin がコメントアウトされました。

# レプリケーションマスターサーバー(デフォルト)
# レプリケーションにはバイナリログが必要です
#ログ bin = mysql bin

mysqlを再起動します。

操作は完了しました。データベースのサイズが数十 MB しかないため、これ以上 N GB のログ ファイルは生成されません。

これらのログ ファイルはひどいです。この新しい VPS に移行してからまだ 20 日ほどですが、ログ ファイルは 1 か月も経たないうちに 3G 近くになっています。1 か月か 2 か月以内にログ ファイルをクリアしないと、大変なことになります。

MySql データ ディレクトリ mysql-bin.000001 ファイルのクリーニング方法

MYSQL インストール ディレクトリのデータ ディレクトリには、すべてのデータベース ファイルが格納されます。このディレクトリには、mysql-bin.000001、mysql-bin.000002、mysql-bin.000003 など、多くのスペースを占めるファイルがいくつかあります。これらのファイルはデータベース操作ログ ファイルであり、削除できます。除去方法:
cmd で、mysql の下の bin ディレクトリに移動し、mysql -u root -p と入力して、パスワードを入力し、正常に入力したら reset master と入力します。
mysql> マスターをリセットします。
クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.20 秒)
これにより、ログ ファイルが削除されます。これらのログ ファイルを生成したくない場合は、次の操作を実行できます。
mysql ディレクトリの my.ini を開き、log-bin=mysql-bin を見つけてコメントアウトします。
#ログ bin = mysql bin
(データベース設定ファイルを変更するときは、MYSQLデータベースを一時的に閉じることをお勧めします)

<<:  Vue での Vue.prototype の使用に関する詳細な説明

>>:  Linux で Grafana をインストールし、InfluxDB モニタリングを追加する方法

推薦する

シンプルなカレンダー効果を実現する JavaScript コード

この記事では、シンプルなカレンダー効果を実現するためのJavaScriptの具体的なコードを参考まで...

MySQL のファントムリード問題を解決する方法

目次序文1. ファントムリーディングとは何ですか? 2. ファントムリーディングの問題点は何ですか?...

Linux で Apache を使用してファイル サーバーを構築する手順

1. ファイルサーバーについてプロジェクトでは、公開ソフトウェアやデータをプロジェクト チーム メン...

Vue の高度な構築プロパティの詳細な説明

目次1. ディレクティブカスタムディレクティブ2. ミックスイン3. 継承を拡張する4. 提供して注...

テーブルの最大幅と最小幅を設定する際の互換性の問題と解決策の詳細な説明

テーブル内の min-width と max-width プロパティの設定 <テーブル>...

6ull が Linux ドライバ モジュールをロードできない問題の解決方法

目次0x01 ドライバーモジュールのロードに失敗しました0x02 ソリューション要約する0x01 ド...

Docker を使用した ElasticSearch:7.8.0 クラスターのインストールに関する詳細なチュートリアル

ElasticSearch クラスターは、クラスターを構築するための動態請求的方式と靜態配置文件をサ...

Dockerでコンテナを作成するときのディレクトリ権限

昨日プロジェクトを書いていた時に、MySQL の派生版である Percona を使う必要があったので...

Mailtoを使えばHTMLでメールを送るのは簡単

最近、顧客のフッターメールボックスにクリックして送信するメール機能を追加しました。Baidu で検索...

Windows での MySQL 8.0.15 の詳細なインストールと使用のチュートリアル

この記事では、MySQL 8.0.15の詳細なインストールと使用方法のチュートリアルを参考までに紹介...

HTML Selectは、デフォルトの選択を設定するためにselected属性を使用します。

オプションに属性 selected = "selected" を追加すると、それ...

HTML iframe と frameset の違い_PowerNode Java Academy

導入1.<iframe> タグ: iframe は、ページ内に内部フレームを生成するイン...

文字列から指定された文字を削除または抽出する JavaScript メソッド (非常によく使用されます)

目次1. 部分文字列() 2. サブストラクチャ() 3.インデックス() 4.最後のインデックス(...

mysql5.7.14 解凍版インストールグラフィックチュートリアル

MySQL は、コミュニティ エディション (コミュニティ サーバー) とエンタープライズ エディシ...

Linux システムによって報告される xfs_vm_releasepage 警告問題に対処する方法

問題の説明最近、いくつかのマシンで、一日のさまざまな時間に次の警告メッセージが表示されました。 3月...