多環境下折騰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);” 這是為什麼呢?我們先來做個實驗,驗證這種情況。這是表結構,初始化兩條記錄,然後實驗:
公司網站有需求對使用者名稱驗證要驗證大小寫。其實剛開始他註冊的時候就就都是大小寫,所以沒有必要做大小寫驗證了。但是現在要登陸的驗證大小寫,那在註冊的時候也要對此進行驗證。但是MySQL在查詢字串時是大小寫不敏感的,在編繹MySQL時一般以ISO-8859字元集作為預設的字元集,這個字元集對大小寫不敏感,因此在比較過程中中文編碼字元大小寫轉換造成了這種現象後來找到一個利用binary臨時解決辦法 代碼如下複製代碼 SELECT * FROM
mysql的自連接的處理速度比子查詢快了很多。所以自連接還是有必要學習的。普通的sql子查詢語句 代碼如下複製代碼 SELECT `id`,`bic` FROM `biao` WHERE `id`=(SELECT `id` FROM `biao` WHERE `id`='9696e'); mysql的自連接sql語句 代碼如下複製代碼 SELECT `id`,`bic` FROM `biao` AS a, `biao` AS b WHERE