在搭建mysql主从复制结构后,发现mysql从库的日志中频繁出现以下警告:
[Warning] Statement may not be safe to log in statement format. Statement: UPDATE `ecshop`.`peixun_sessions` SET expiry = '1300718449', ip = '119.36.87.150', userid = '0', adminid = '0', user_name='0', user_rank='0', discount='1', email='0', data = 'a:3:{s:7:\"from_ad\";i:0;s:7:\"referer\";s:4:\"本站\";s:10:\"login_fail\";i:0;}' WHERE sesskey = '815b45228773afe524f7651ad9b8e84f' LIMIT 1
经过检查,这是因为加有limit导致,MySQL认为添加limit会导致主从库数据可能不一致,就出现警告,解决方式有多种,但是对一个处于生产环境中的MySQL主从结构,建议还是从程序入手,尽可能不要修改MySQL配置(既然已经MySQL稳定运行,擅自修改其配置,就可能存在风险)
修改ecshop的源文件 includes/cls_session.php
大约228行左右找到
return $this->db->query('UPDATE ' . $this->session_table . " SET expiry = '" . $this->_time . "', ip = '" . $this->_ip . "', userid = '" . $userid . "', adminid = '" . $adminid . "', user_name='" . $user_name . "', user_rank='" . $user_rank . "', discount='" . $discount . "', email='" . $email . "', data = '$data' WHERE sesskey = '" . $this->session_id . "' LIMIT 1");
将最后的LIMIT 1去掉,即:
return $this->db->query('UPDATE ' . $this->session_table . " SET expiry = '" . $this->_time . "', ip = '" . $this->_ip . "', userid = '" . $userid . "', adminid = '" . $adminid . "', user_name='" . $user_name . "', user_rank='" . $user_rank . "', discount='" . $discount . "', email='" . $email . "', data = '$data' WHERE sesskey = '" . $this->session_id . "'");
再找到destroy_session方法的定义中:
$this->db->query('DELETE FROM ' . $this->session_data_table . " WHERE sesskey = '" . $this->session_id . "' LIMIT 1");
return $this->db->query('DELETE FROM ' . $this->session_table . " WHERE sesskey = '" . $this->session_id . "' LIMIT 1");
同样,将 limit 1去掉
分享到:
相关推荐
在ECSHOP的环境中,主从MySQL的配置不仅可以提高数据安全性,还可以减轻主库的压力,提高响应速度。同时,通过监控主从库的状态,我们可以及时发现并解决问题,进一步提升系统的稳定性和可靠性。文件`ecshop_master_...
在"ECshop--sqlTest"这个压缩包中,我们主要关注的是与数据库操作相关的示例,即SQL测试。数据库是ECShop运行的核心,它存储了商品信息、订单数据、用户资料等所有关键业务数据。下面我们将详细探讨ECShop中的数据库...
ECSHOP是一款基于PHP语言和MySQL数据库的开源电子商务系统,因其强大的功能和灵活的可扩展性,在国内电商行业中被广泛应用。"ECSHOP二次开发教程开发手册"旨在为开发者提供深入理解并进行ECSHOP系统定制的指导,帮助...
"小京东app服务器端源码.rar" 是一个包含小京东APP应用后端服务代码的压缩文件,它是基于ECSHOP平台进行开发的。ECSHOP是一款知名的开源电商系统,为许多中小企业提供了构建在线商店的解决方案。本文将深入探讨小...
通过MySQL主从复制实现读写分离,提高数据库的读取性能。 **5. 负载均衡** 使用Nginx等负载均衡器分发请求到多个服务器,降低单一服务器的压力。 #### 四、MVC架构原理及其优势 **1. MVC架构组成** - **Model ...
- 针对就业方向,学习实际工作中的技术栈,如SVN、Memcached、页面静态化技术、mysql主从数据库、读写分离等。 - 帮助学员提升就业竞争力,通过学习实战项目来模拟真实工作环境。 9. 学习资源获取 - 自学IT论坛...
- **XtraBackup**:一个用于 MySQL 的物理备份工具,支持在线热备份。 - **备份过程**:包括数据文件的复制、日志文件的记录等。 - **恢复过程**:根据备份文件还原数据库状态。 #### 二、MySQL 数据库运维篇 ####...