多環境下折騰python-mysql最近在折騰寫一個測試案例調度執行的指令碼,與mysql會有一定的互動。在Mac下面開發測試都OK,但是移植到伺服器上,發現有太多的問題。在伺服器上Centos 5 上安裝MySQLdb碰到這種坑,折騰了一下午。當然,Mysqldb應該是python比較常見的外部lib,像django項目就是使用MySQLdb。簡單總結下,MySQLdb是使用C模組來連結Mysql ,所有會需要有下面幾個先決條件: c
一、UDF的安全問題利用譬如, 執行一條sql語句查看/etc/passwd檔案的內容: 這裡主要是用到了load_file()函數,當然這個函數是可以被禁用的。以上可以輕鬆看到/etc/passwd檔案的資訊和ip地址,當然其他的檔案內容都可以被看到。由於load_file()函數只能實作類別似系統命令cat的查看檔案功能,但是想執行系統命令的功能,那麼只能用UDF了,也就是User defined
般剛開始學SQL語句的時候,會這樣寫代碼如下: 代碼如下複製代碼 SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在資料達到百萬級的時候,這樣寫會慢死代碼如下: 代碼如下複製代碼 SELECT * FROM table ORDER BY id LIMIT 1000000, 10; 也許耗費幾十秒網上很多最佳化的方法是這樣的代碼如下: 代碼如下複製代碼 SELECT * FROM
今天有同學給我反應,有一張表,id是主鍵,這樣的寫法可以返回一條記錄: 代碼如下複製代碼 “SELECT * FROM t HAVING id=MIN(id);” 但是只是把MIN換成MAX,這樣返回就是空了: 代碼如下複製代碼 “SELECT * FROM t HAVING id=MAX(id);” 這是為什麼呢?我們先來做個實驗,驗證這種情況。這是表結構,初始化兩條記錄,然後實驗:
錯誤ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)ERROR 1418 (HY000): This