我在OS X 10.6.1上运行MySQL 5.0.45,我无法让MySQLlogging任何东西。 我正在debugging一个应用程序,并需要查看所有查询和错误。
我添加到etc / my.cnf中:
[mysqld] bind-address = 127.0.0.1 log = /var/log/mysqld.log log-error = /var/log/mysqld.error.log
我用sudo创build两个日志文件,将权限设置为644,然后重新启动MySQL。
我提到我的mysql在OS X上login在哪里? 为了排除故障。
运行:
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)
任何帮助我如何让MySQLlogin?
即使您使用了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。
然后,login到MySQL并运行:
mysql> show variables like '%log%';
查看general_log
, general_log_file
, log
, log_error
等的值
根据需要打开它们,根据需要运行mysqladmin flushlogs 。
要启用日志文件,需要确保下面的一个或多个指令位于mysql服务器主configuration文件(我的/etc/my.cnf
)的[mysqld]
部分:
[mysqld] log-bin log log-error log-slow-queries
日志将默认创build在保存数据库子目录(通常为/var/lib/mysql
)的同一数据目录中,日志文件名默认为主机名,后跟与上述指令名相匹配的后缀。-bin,-slow-queries等)。
要保持您的日志不同的path或使用不同的文件名,请在log=
指令之后指定基本名称,以及任何您喜欢的path和文件名,例如:
[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
查看configuration文件。
在[mysqld]
部分添加
log_bin general_log log_error
Windows的文档指出日志存储在ProgramData/MySQL/MySQL Server 5.6/
。 忽略它,因为它是一个谎言。
此外,推荐的log
选项会折旧并导致错误
ambiguous option '--log' (log-bin, log_slave_updates)
正在login./mysql/data/host.err
和守护进程静静地死去。 正确的设置是general-log
。
此外, log-slow-queries
无效并导致错误
C:\mysql\bin\mysqld.exe: unknown option '--log-slow-queries'
所以一定要远离这一点。
input具有超级权限的mysql命令行并执行:
SET GLOBAL general_log_file ='/var/log/mysql/mysql.log';
在我的情况下,如果我已经设置了相同的值这个variables没有关系! 另外,我改变了其他文章中提到的文件的权限和所有者。
在my.cnf中尝试不同的日志设置。 在我的情况下,我需要:
general_log = on general_log_file=/var/log/mysql/mysql.log