2014-02-19 105 views
3

我注意到,最近mysql客戶端工具沒有記錄我發出的所有查詢。這種行爲似乎非常不一致;有些查詢會被記錄下來,其他查詢則不會,沒有任何明確的模式,但查詢看起來越簡單,就越有可能被記錄。至少可以說這是令人討厭的。我在Ubuntu 12.04 LTS下使用MySQL 5.6.14。MySQL客戶端歷史記錄沒有記錄一些查詢

確實似乎沒有多少模式:像SELECT COUNT(*) FROM TABLE_X WHERE COL_1=3;這樣的查詢很可能會被記錄,而不會。

任何想法?這是MySQL的一個非常新的版本,我只在開發中使用它,但我想將它推廣到我們的實時計算機,因爲微秒時間戳解決方案以比現在更清潔的方式解決了許多問題。

更新:按照下文Alex_at_wearenotmachines,任何在查詢中的形式*PASSWORD*的圖案禁用日誌記錄,這顯然是一個過於寬泛的標準。

回答

2

剛剛在bugs.mysql.com上報告了這個問題 - 你是否得到奇怪的mysql>提示符突然出現在命令中間?運行create table命令的平均時間約爲.75秒?似乎有點慢......

無法看到任何模式 - 它拒絕記住SELECT密碼FROM用戶,永遠。但記得大多數其他的事情。已經使用了大約3周,但今天才注意到,但通過我的歷史回顧,我可以看到有些東西明顯缺失的邏輯差距。

+1

不是一個錯誤! MySQL回來說: 請注意,如果語句在「忽略」列表中匹配 任何模式,即默認情況下,模式列表 是「* IDENTIFIED *:* PASSWORD *」,將忽略語句請參閱 密碼。 請參考 - http://dev.mysql.com/doc/refman/5.6/en/mysql-logging.html 不知道如果這能幫助您排序出來....完整的錯誤報告位置: HTTP ://bugs.mysql.com/?id = 71987 –

+0

這似乎是發生了什麼事情(我不知道我是如何錯過它的。)你能修改你的答案,以便我可以選擇最好的答案嗎?我真的希望有一種完全禁用此行爲的方法,而不是簡單地向停止列表添加額外的模式。 –

2

這確實是一個錯誤。沒有理由將其從客戶歷史記錄中刪除。它應該可用於剛輸入它的人!

此外,模式過於寬泛。如果沒有字符串文字,則不存在敏感數據,因此模式,而不是「10密碼」應該需要字符串文本中的某處(仍然太寬但更合理),如:IDENTIFIED ['']*:*PASSWORD*['"] *

此外,你應該能夠覆蓋這些模式(就像我一直在寫密碼列上的多表連接(不要問)),我甚至不能向上放箭頭缺少逗號...)

還有一件事(謝謝你Brian Matthews!http://forums.mysql.com/read.php?11,631456,631456#msg-631456)如果你完全像我這樣被火腿串起來,你可以通過hexediting mysql客戶端二進制文件禁用它。醜陋,但有效。我現在有一個腳本叫做fix_mysql_client ...

+0

http://bugs.mysql。com/bug.php?id = 78088一個錯誤,要求將其改爲仍然安全,但要少得多痛苦。 –

+1

謝謝。這真的是一個大腦死亡的行爲。這意味着,例如,如果您在其中一列中使用「PASSWORDx」創建表格,則甚至不能使用歷史記錄來恢復行。這是愚蠢的。 –