ecshop ySQL主從複製中的乙個小問題

2021-08-31 08:09:23 字數 1658 閱讀 4244

在搭建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:' 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去掉

Mysql主從複製和Redis主從複製的區別

這是學習的時候自己總結的筆記,因為使用typora記筆記,導致太多的筆記分散,所以傳到部落格方便查詢,代表的是typora裡的高亮 mysql主從複製和redis主從複製的區別 複製時機 mysql的主從複製是 從接入點開始 主機之前的資料,從機不會複製 但是redis是 從頭開始備份 主機之前的資...

mysql主從複製

罪過啊,博主最近好久沒有更新部落格了,轉有道雲筆記了,筆記裡還有些乾貨,最近慢慢分享出來吧。博主最近發現有好多想學,但是發現精力有限啊,博主本來是搞個開發的,但是偏偏想把運維,dba的技術全都學了 mysql集群,nginx等等等 但是發現精力有限,所以簡單了解一下,mysql的主從複製,後面還有m...

MySQL 主從複製

1.概念 將主伺服器的資料複製到另外一台或多台伺服器的過程。也即將主資料庫的ddl和dml操作通過二進位制日誌傳到復 務器上,然後在從伺服器上對這些日誌進行重新執行,從而 保持資料同步。2.作用 降低主伺服器的訪問壓力 避免主伺服器因故障導致資料丟失。3.操作步驟 1 主伺服器將資料的改變記錄到二進...