文件相关参数sync_binlog:控制二进制日志被同步到磁盘前二进制日志提交组的数量。当这个参数为0的时候,二进制日志不会被同步到磁盘;当这个参数设为0以上的数值时,就会有设置该数值的二进制提交组定期同步日志到磁盘。当这个参数设为1的时候,所有事务在提交前会被同步到二进制日志中,因而即使MySQL服务器发生意外重启,任何二进制日志中没有的事务只会处于准备状态,这会导致MySQL服务器自动恢复以回滚这些事务。这样就会保证二进制日志不会丢失事务,是最安全的选项;同时由于增加了磁盘写,这对性能有一定降低。将这个参数设为1以上的数值会提高数据库的性能,但同时会伴随数据丢失的风险。建议将该参数设为2、4、6、8、16可以通过修改mycnf 在 [mysqld] 之下加 default-time-zone=timezone 来修改时区。如: default-time-zone = '+8:00' 修改完了记得记得重启msyql 注意一定要在 [mysqld] 之下加 ,否则会出现 unknown variable 'default-time-zone=+8:00'!目前你遇到的问题大概是 PHP 获取的时间和 MySQL中获取的时间存在时差
比较直接的解决方案是在 PHP 和 MySQL 中遵循同一时区约定
PHP 在50 之后应该可以直接在代码中设定时区
date_default_timezone_set('PRC');
MySQL 也可以通过修改配置文件 myini 或者 mycnf 确保时区正确
default-time-zone=timezone
问题是你的MySQL服务器可能是在某台美国服务器上租借的,没法修改
所以解决的方法只能是:
修改插件源代码,将 SQL 语句改为
select forum_id, count(post_id) todayposts
from ' POSTS_TABLE '
where date(from_unixtime(post_time)) = date(DATE_ADD(now(), INTERVAL 14 HOUR))
group by forum_id
其中的 DATE_ADD(now(), INTERVAL 14 HOUR) 是-14 还是 14,这需要你仔细考虑下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)