OS X 10.6.1でMySQL 5.0.45を実行していますが、MySQLで何もログに記録できません。アプリケーションをデバッグしていて、すべてのクエリとエラーを確認する必要があります。
私はetc/my.cnfに追加しました:
[mysqld]
bind-address = 127.0.0.1
log = /var/log/mysqld.log
log-error = /var/log/mysqld.error.log
Sudoを使用して2つのログファイルを作成し、権限を644に設定してから、MySQLを再起動しました。
トラブルシューティングのために OS Xのmysqlログはどこですか? を参照しました。
ランニング:
ps auxww|grep [m]ysqld
戻り値:
_mysql 71 0.0 0.8 646996 15996 ?? S 7:31PM 0:01.10 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/Macintosh-41.local.pid
_mysql 46 0.0 0.0 600336 744 ?? Ss 7:30PM 0:00.03 /bin/sh /usr/local/mysql/bin/mysqld_safe
そして実行中:
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
戻り値:
log /var/log/mysqld.log
log-bin (No default value)
log-bin-index (No default value)
log-bin-trust-function-creators FALSE
log-bin-trust-routine-creators FALSE
log-error /var/log/mysqld.error.log
log-isam myisam.log
log-queries-not-using-indexes FALSE
log-short-format FALSE
log-slave-updates FALSE
log-slow-admin-statements FALSE
log-slow-queries (No default value)
log-tc tc.log
log-tc-size 24576
log-update (No default value)
log-warnings 1
ランニング:
mysql> show variables like '%log%';
戻り値:
+---------------------------------+---------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------+
| back_log | 50 |
| binlog_cache_size | 32768 |
| expire_logs_days | 0 |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_Arch_dir | |
| innodb_log_archive | OFF |
| innodb_log_buffer_size | 1048576 |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_mirrored_log_groups | 1 |
| log | ON |
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error | /var/log/mysqld.error.log |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
| max_binlog_cache_size | 4294967295 |
| max_binlog_size | 1073741824 |
| max_relay_log_size | 0 |
| relay_log_purge | ON |
| relay_log_space_limit | 0 |
| sync_binlog | 0 |
+---------------------------------+---------------------------+
26 rows in set (0.00 sec)
MySQLをログに記録する方法に関するヘルプはありますか?
chmod 644
を使用した場合でも、mysqlがログの所有者であることを確認してください。
touch /var/log/mysql.log
chown mysql:mysql /var/log/mysql.log
touch /var/log/mysql.error.log
chown mysql:mysql /var/log/mysql.error.log
次に、mysqldを再起動します。
次に、mysqlにログインして実行します。
mysql> show variables like '%log%';
general_log
、general_log_file
、log
、log_error
などの値を確認します。
必要に応じてそれらをオンにし、必要に応じてmysqladmin flushlogsを実行します。
ログファイルを有効にするには、mysqlサーバーのメイン構成ファイル(私の場合は[mysqld]
)の/etc/my.cnf
セクションに次のディレクティブが1つ以上あることを確認する必要があります。
[mysqld]
log-bin
log
log-error
log-slow-queries
ログは、デフォルトで、データベースサブディレクトリ自体を保持する同じデータディレクトリ(通常は/var/lib/mysql
)に作成され、ログファイル名はデフォルトでホスト名の後に上記のディレクティブ名と一致するサフィックスが付いたものになります(例: -bin、-slow-queriesなど)。
ログを別のパスに保持するか、別のファイル名を使用するには、log=
ディレクティブの後にベース名を指定し、任意のパスとファイル名を指定します。例:
[mysqld]
log-bin=/var/log/mysql-bin.log
log=/var/log/mysql.log
log-error=/var/log/mysql-error.log
log-slow-queries=/var/log/mysql-slowquery.log
これらの変更を有効にするには、mysqldを再起動する必要があります。
以前の回答は古くなっています。構成ファイルは/etc/my.cnf
またはWindows ./mysql/my.ini
で確認できます。
[mysqld]
セクションに追加
log_bin
general_log
log_error
Windowsのドキュメントでは、ログはProgramData/MySQL/MySQL Server 5.6/
に保存されると記載されています。嘘なので無視してください。
さらに、推奨されるlog
オプションは廃止され、エラーが発生します
ambiguous option '--log' (log-bin, log_slave_updates)
./mysql/data/Host.err
にログインしていて、デーモンが静かに死んでいる。正しい設定はgeneral-log
です。
また、log-slow-queries
は無効であり、エラーの原因です
C:\mysql\bin\mysqld.exe: unknown option '--log-slow-queries'
だから、それからも離れないようにしてください。
My.cnfで別のログ設定を試してください。私の場合、私は必要でした:
general_log = on
general_log_file=/var/log/mysql/mysql.log
スーパー特権でmysqlコマンドラインを入力して実行します:
SET GLOBAL general_log_file = '/var/log/mysql/mysql.log';
私の場合、この変数に同じ値がすでに設定されていても問題ありませんでした。また、他の投稿で述べたように、ファイルの権限と所有者を変更しました。