使用MySQL上的刷新日志似乎并不工作,即使我有权限?

一点信息:

select current_user: [email protected] show grants for current_user(): 'GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY PASSWORD 'omitted' Service string: "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" MySQL 

基本上,我没有看到任何新的文件。 这两个文件(.log和server_name.log)继续增长,没有* -old的出现。

我究竟做错了什么?

MySQL中的FLUSH LOGS只影响二进制日志。

根据MySQL Docs的这段摘录 :

closures并重新打开所有日志文件。 如果启用二进制日志logging,则二进制日志文件的序列号会相对于前一个文件增加1。 在Unix上,这与向mysqld服务器发送SIGHUP信号是一样的(除了某些Mac OS X 10.3版本,其中mysqld忽略SIGHUP和SIGQUIT)。

如果您执行FLUSH LOGS并且mysqld正在将错误日志写入文件(例如,如果它是使用–log-error选项启动的),则会按照第5.2.1节“错误日志”中所述执行日志文件重命名, 。

恕我直言,作为一个MySQL DBA这7年来,我个人从未在错误日志上看到这项工作,但只有二进制日志。

在最新的关于MySQL 5.5的MySQL文档中 :

如果使用FLUSH LOGS或mysqladmin flush-logs刷新日志,并且mysqld正在将错误日志写入文件(例如,如果它是使用–log-error选项开始的),则效果与版本相关:

从MySQL 5.5.7开始,服务器closures并重新打开日志文件。 要重命名文件,可以在刷新之前手动执行。 然后刷新日志重新打开与原始文件名的新文件。 例如,您可以使用以下命令重命名该文件并创build一个新文件:

 shell> mv host_name.err host_name.err-old shell> mysqladmin flush-logs shell> mv host_name.err-old backup-directory 

在Windows上,使用重命名而不是mv。

在MySQL 5.5.7之前,服务器使用后缀-old重命名当前日志文件,然后创build一个新的空日志文件。 请注意,第二次日志刷新操作会导致原始错误日志文件丢失,除非将其另存为其他名称。 在Windows上,当服务器在MySQL 5.5.7之前打开时,你不能重命名错误日志。 要避免重新启动,请首先刷新日志以使服务器重命名原始文件并创build一个新文件,然后保存重命名的文件。 这也适用于Unix,或者您可以使用前面显示的命令。

如果服务器未写入指定文件,则在任何情况下刷新日志时都不会发生错误日志重命名。

我再说一次,我个人从来没有看到这个工作的错误日志,但只有二进制日志。

我的雇主的客户有这个bash脚本。