我在 WAMP 中激活一般查询日志文件时遇到问题 我查看了许多线程,但似乎无法让它写入日志。
我已经尝试了好的查询和坏的查询来尝试跳闸日志。
有什么建议?
这是我的 my.ini
# The MySQL server
[wampmysqld]
port = 3306
socket = /tmp/mysql.sock
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
basedir=c:/wamp/bin/mysql/mysql5.6.17
log-error=c:/wamp/logs/mysql.log
datadir=c:/wamp/bin/mysql/mysql5.6.17/data
log-output = FILE
general-log = 1
general_log_file=C:/wamp/logs/general-query.log
Run Code Online (Sandbox Code Playgroud)
你有一个错字general-log。它应该是general_log
然后一个mysql重启。
并在重新启动后检查您的变量,例如
select @@general_log; -- 0 (that means OFF). 1 is ON.
select @@general_log_file; -- GUYSMILEY.log
select @@datadir; -- C:\ProgramData\MySQL\MySQL Server 5.6\Data\
select @@version; -- 5.6.31-log
Run Code Online (Sandbox Code Playgroud)
要设置动态变量以覆盖 cnf 或 ini 文件设置,请执行类似于以下操作:
set GLOBAL general_log=1;
Run Code Online (Sandbox Code Playgroud)
记住它是datadir,不是basedir。您可能需要在 Windows 上打开隐藏文件夹的查看以查看\ProgramData是否是您datadir指向的位置。
最后,你不需要用错误的 sql 语句来欺骗它。一般查询日志用于所有查询。
有关它的屏幕截图视图,请参阅此答案。请记住,它适用于所有查询。因此,将其关闭,复制,删除,重新打开,它会重新生成。不要忘记在生产中激活通用日志会降低性能。
另外,请参阅Gryphius 的这个答案。
编辑(根据您在评论中的问题)。
如果未在 cnf 或 ini 设置中反映,则对动态变量的更改是短暂的。意思是,它们在 mysql 重新启动时重置。
我不知道关闭错误日志的方法,我也可能不想。错误很少发生,了解它们非常重要。因此,以下内容应满足您的 4 个好奇心中的 3 个:
show variables like '%error%';
show variables like '%slow%';
log_error -- string for filename
slow_query_log -- set to 'ON' or 1, 'OFF' or 0
slow_query_log_file; --- string for filename
Run Code Online (Sandbox Code Playgroud)
然后总是有 show variables;
更多关于慢查询日志。如果你设置的long_query_time足够高,它会有效地过滤掉更多的噪音。它以秒为单位,从 0 到 10。还有一个Percona文章虽然过时了。
select @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
| 10.000000 |
+-------------------+
Run Code Online (Sandbox Code Playgroud)
请注意,我似乎无法使用SET GLOBALstmt设置上述内容。所以它似乎是只针对 cnf 或 ini 文件的设置。但是您可以执行以下操作:
select @@slow_query_log; -- to see current value
select @@slow_query_log_file; -- to see current value (file in datadir)
select @@datadir; -- to see current value
set global slow_query_log=0; -- Turn Off
-- make a backup of it with a move and rename (See Note1) to a folder below datadir
set global slow_query_log=1; -- Turn it back On (new empty file is created)
Run Code Online (Sandbox Code Playgroud)
Note1:复制的文件图像,在上面的 Note1 时间点重命名。图像在这里。