MariaDB General Log: 設定方法、機能、トラブルシューティング【完全ガイド】

2024-04-02

MariaDBのジェネラルログが機能しない: 原因と解決策

原因

以下の理由が考えられます。

設定ミス

  • general_log システム変数が OFF になっている。
  • general_log_file システム変数が正しく設定されていない。
  • ログファイルの書き込み権限がない。

環境問題

  • ログファイルのディスク容量不足。
  • アンチウイルスソフトによる干渉。

解決策

設定確認

まず、以下のコマンドを実行して、general_loggeneral_log_file の設定を確認します。

mysql> SHOW VARIABLES LIKE '%log%';

general_logON になっていることを確認し、general_log_file がログファイルの正しいパスを指していることを確認します。

権限確認

ログファイルの書き込み権限が設定されていることを確認します。

ls -l /var/log/mariadb/mariadb.log

ログファイルのディスク容量が不足していないことを確認します。また、アンチウイルスソフトを使用している場合は、MariaDBの例外設定を行ってください。

その他

上記を確認しても問題が解決しない場合は、以下の方法を試してください。

  • MariaDBを再起動する。
  • MariaDBの設定ファイルを編集する。
  • エラーログを確認する。

補足

  • 上記の情報は、MariaDB 10.5.14に基づいています。
  • 問題解決には、専門知識が必要となる場合があります。



-- 1. general_log を有効にする

SET GLOBAL general_log = 1;

-- 2. general_log_file を設定する

SET GLOBAL general_log_file = '/var/log/mariadb/mariadb.log';

-- 3. 現在の設定を確認する

SHOW VARIABLES LIKE '%log%';

-- 4. ログをクリアする

SET GLOBAL general_log = 0;

-- 5. クエリを実行する

SELECT * FROM users;

-- 6. ログを確認する

tail -f /var/log/mariadb/mariadb.log
  • 環境に合わせてコードを変更する必要があります。
  • MariaDBのジェネラルログは、パフォーマンスに影響を与える可能性があります。必要に応じてのみ有効にしてください。
  • ログファイルは定期的にバックアップすることをお勧めします。



MariaDB General Log を有効にする他の方法

my.cnf ファイル

[mysqld]
general_log = 1
general_log_file = /var/log/mariadb/mariadb.log

注意:

  • my.cnf ファイルの場所は、環境によって異なります。
  • my.cnf ファイルを変更する前に、バックアップを取ることをお勧めします。

コマンドライン

以下のコマンドを実行して、ジェネラルログを有効にすることができます。

mysqld --general-log --general-log-file=/var/log/mariadb/mariadb.log
  • この方法は、MariaDB サーバーを起動するたびにジェネラルログを有効にする必要があります。

GUI ツール

MySQL Workbench などの GUI ツールを使用して、ジェネラルログを有効にすることもできます。

MySQL Workbench の場合、以下の手順を実行します。

  1. MySQL Workbench を起動し、MariaDB サーバーに接続します。
  2. Server タブをクリックします。
  3. Configuration セクションで、General タブを選択します。
  4. General Log セクションで、Enabled チェックボックスをオンにします。
  5. Log File フィールドに、ログファイルのパスを入力します。
  6. Apply ボタンをクリックします。

スクリプト

#!/bin/bash

# MariaDB サーバーを停止する
service mariadb stop

# my.cnf ファイルに設定を追加する
echo "general_log = 1" >> /etc/mysql/my.cnf
echo "general_log_file = /var/log/mariadb/mariadb.log" >> /etc/mysql/my.cnf

# MariaDB サーバーを起動する
service mariadb start
  • このスクリプトは、root 権限で実行する必要があります。

MariaDB General Log を有効にする方法はいくつかあります。自分に合った方法を選択してください。


mariadb


MariaDBのALTER TABLEコマンドを使いこなす!既存の列をNOT NULLに変更する方法

MariaDBで既存の列をNOT NULLに変更するには、ALTER TABLEステートメントを使用します。このステートメントは、テーブル構造の変更に使用されます。手順以下のコマンドを実行して、MariaDBに接続します。以下のコマンドを実行して、列をNOT NULLに変更します。...


データベースの文字コード選びはこれで完璧!MySQL・MariaDBの「utf8_bin」と「latin1_general_cs」

MySQL と MariaDB では、文字列の保存と比較に使用される文字セットと照合順序を指定できます。ここでは、utf8_bin と latin1_general_cs の違いについて、プログラミングの観点から分かりやすく解説します。文字セット...


MariaDB - データ整合性を保ちながらマスタースレーブ環境でパーティションを管理する

MariaDBのマスタースレーブ環境で、マスター側のみでパーティションをドロップする方法を紹介します。スレーブ側ではパーティションが保持されたままとなり、データの整合性を保ちます。手順スレーブの複製を停止するマスター側でパーティションをドロップする...


MySQL: 外部ライブラリを使って中央値を計算する

MySQLには中央値を直接計算する組み込み関数は存在しません。しかし、いくつかの方法で中央値を計算することができます。MySQL 8.0以降では、ウィンドウ関数を使って中央値を計算することができます。この例では、column_name列の中央値をmedianという名前で計算しています。...


MariaDBエラー1064「OUTPUT」付近の構文エラーを徹底解説!原因と解決策

このエラーは、MariaDBでSQLクエリを実行中に発生する一般的なエラーです。「OUTPUT」キーワード付近に構文エラーがあることを示しています。このエラーを解決するには、エラーメッセージの詳細を分析し、クエリ内の該当箇所を修正する必要があります。...


SQL SQL SQL SQL Amazon で見る



MySQL/MariaDBで発生する「unknown variable 'general_log_file=/var/log/mysql/mysql.log'」エラーの原因と解決策

このエラーは、MySQL または MariaDB で general_log_file システム変数を設定しようと試みた際に発生します。 general_log_file 変数は、MySQL サーバーが一般クエリログを記録するファイルの場所を指定するために使用されます。