Re: [系統] 請問一下MySQL和python的連接關係

看板Database作者 (AndCycle)時間16年前 (2009/11/16 03:29), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《chigi ()》之銘言: : 這個問題是從 : OperationalError: (2006, 'MySQL server has gone away') : 來的, : 我把錯誤訊息拿進google去查了一下, : 說大部分都是因為timeout之後,connect就掛了,而新版的MySQL的某個flag預設為0 : 詳見http://mclee.foolme.net/2007/01/mysql-server-has-gone-away.html : 我的問題在於,對於Python的MySQL套件(MySQLdb, build on py2.5) : 只能使用 MySQLdb.connect(host, ..) 做連接, : 那mysql_real_connect又是怎麼使用呢? 你需要看兩份文件, 而且建議你找文件首先從英文下手, 第一份是 http://dev.mysql.com/doc/refman/5.0/en/mysql-real-connect.html 這是MySQL官方對於mysql_real_connect的使用方式說明, 最下面就有指出你找到的問題, 而且他也有建議你怎麼改, As of MySQL 5.0.13, you can use the MYSQL_OPT_RECONNECT option to mysql_options() to control reconnection behavior. 第二份是 http://mysql-python.sourceforge.net/MySQLdb.html 這是MySQL-Python的使用者手冊, 裡面就有提到MySQL的API跟Python函式名稱上的互相關係, 不過看了半天發現怎麼沒有提到reconnect這件事? 於是開了google "MYSQL_OPT_RECONNECT python" 第一筆是個漏漏長的網址, http://sourceforge.net/tracker/index.php?aid=1483074&group_id=22307&atid=374934 內文是有人針對這個問題在2008年底開了一個收patch要求, 但是MySQL-Python的作者adustman第一句回的話就是這patch我不收, 因為他認為自動重新連線這回事有很多潛在的問題, MySQL官方把這個預設值改成不自動重連也有原因, 所以他麻煩你認真的定時去保持連線, 也就是用 connection.ping() 定期去敲 mysql 說你還活著 -- 愛情, 是貓與蝴蝶的嬉戲 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.40.15

11/16 12:20, , 1F
感謝推! 話說google py和MySQL_real_connect我還真的沒想到.
11/16 12:20, 1F

11/16 14:39, , 2F
最後.. 結果是因為送入了過長的SQL導致database crash
11/16 14:39, 2F
文章代碼(AID): #1B05QSnd (Database)
文章代碼(AID): #1B05QSnd (Database)