如何启用MySQL的常规日志以用于MAMP?
我用它在我的Mac上运行Apache,MySQL和PHP,这样我就可以通过UI打开/关闭/重启,而不是弄乱默认安装在机器上的Apache或PHP。
在我的Mac上,我尝试在 my.cnf 文件中设置配置设置,以记录运行到文件的每个SQL查询。当我从终端内运行 SHOW VARIABLES 命令时,设置似乎已生效,如下面的输出所示。
问题:常规日志文件未填充 当我实际执行 SQL查询或在MAMP服务器上重新加载从MySQL数据库读取数据的PHP页面时,通常的日志文件不会被创建或填充。< / p>
以下是我设置的 my.cnf 内容的一部分:
# The MySQL server
[mysqld]
#port = 9999
socket = /Applications/MAMP/tmp/mysql/mysql.sock
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
bind-address = 127.0.0.1
general_log = 1
general_log_file = /Applications/MAMP/logs/mysql_general_sql.log
以下是运行 SHOW VARIABLES 语句的输出部分:
mysql> show variables;
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| ... | ... |
| general_log | ON |
| general_log_file | /Applications/MAMP/logs/mysql_general_sql.log |
| log | ON |
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error | /Applications/MAMP/logs/mysql_error_log.err |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
| long_query_time | 10.000000 |
| relay_log | |
| relay_log_index | |
| relay_log_info_file | relay-log.info |
| relay_log_purge | ON |
| relay_log_recovery | OFF |
| relay_log_space_limit | 0 |
| report_host | |
| report_password | |
| report_port | 3306 |
| report_user | |
| server_id | 1 |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | /Library/Application Support/appsolute/MAMP PRO/db/mysql/tim-slow.log |
| socket | /Applications/MAMP/tmp/mysql/mysql.sock |
| sql_log_bin | ON |
| sql_log_off | OFF |
| ... | ... |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
318 rows in set (0.01 sec)
我有什么遗失的吗?
答案 0 :(得分:10)
我尝试运行命令SET GLOBAL general_log = 'ON';
,看看我是否可以通过这种方式运行它。这会产生错误消息File Not Found
,即使该文件确实存在。
这表明问题可能是由于文件权限造成的。
经过一番游戏,我改变了:
自从做出这些改变以来,它一直运作良好。