中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣給Python的MySQL模塊加功能

發布時間:2021-03-05 09:27:23 來源:億速云 閱讀:216 作者:小新 欄目:數據庫

小編給大家分享一下怎樣給Python的MySQL模塊加功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

  使用Python操作MySQL數據庫的時候常使用MySQLdb這個模塊。在開發的過程發現MySQLdb.connect有些參數沒法設置。通過這個頁面我們看到的是在connect的時候,可以設置的option和client_flags和MySQLcapi相比差不少。下面億速云小編來講解下如何給Python的MySQL模塊加功能?

  如何給Python的MySQL模塊加功能

  一個很重要的參數MYSQL_OPT_READ_TIMEOUT沒法設置,這個參數如果不設置,極致狀況MySQL處于hang住,自動切換IP漂移,客戶端無法重連到新MySQL。

  給MySQLdb加Option很簡單,只要修改_mysql.c這個把Python對象映射到MySQL操作的文件,添加參數,再加一段mysql_option即可。

  下面是修改后的gitdiff文件

diff--gita/_mysql.cb/_mysql.cindexd42cc54..61a9b34100644---a/_mysql.c+++b/_mysql.c@@-489,9+489,10@@_mysql_ConnectionObject_Initialize("named_pipe","init_command","read_default_file","read_default_group","client_flag","ssl",-"local_infile",+"local_infile","read_timeout",NULL};intconnect_timeout=0;+intread_timeout=0;intcompress=-1,named_pipe=-1,local_infile=-1;char*init_command=NULL,*read_default_file=NULL,@@-500,7+501,7@@_mysql_ConnectionObject_Initialize(self->converter=NULL;self->open=0;check_server_init(-1);-if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|ssssisOiiisssiOi:connect",+if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|ssssisOiiisssiOii:connect",kwlist,&host,&user,&passwd,&db,&port,&unix_socket,&conv,@@-509,7+510,8@@_mysql_ConnectionObject_Initialize(&init_command,&read_default_file,&read_default_group,&client_flag,&ssl,-&local_infile/*DONOTPATCHFORRECONNECT,IDIOTS+&local_infile,&read_timeout+/*DONOTPATCHFORRECONNECT,IDIOTSIFYOUDOTHIS,IWILLNOTSUPPORTYOURPACKAGES.*/))return-1;@@-540,6+542,12@@_mysql_ConnectionObject_Initialize(mysql_options(&(self->connection),MYSQL_OPT_CONNECT_TIMEOUT,(char*)&timeout);}++if(read_timeout){+unsignedinttimeout=read_timeout;+mysql_options(&(self->connection),MYSQL_OPT_READ_TIMEOUT,(char*)&timeout);+}+if(compress!=-1){mysql_options(&(self->connection),MYSQL_OPT_COMPRESS,0);client_flag|=CLIENT_COMPRESS;

  代碼修改完畢,pythonsetup.pyinstall即可,如果出現mysql_config找不到的問題。你還要修改setup_posix.py文件。

hoterran@hoterran-laptop:~/Projects/MySQL-python-1.2.3$gitdiffsetup_posix.pydiff--gita/setup_posix.pyb/setup_posix.pyindex86432f5..f4f08f1100644---a/setup_posix.py+++b/setup_posix.py@@-23,7+23,7@@defmysql_config(what):ifret/256>1:raiseEnvironmentError("%snotfound"%(mysql_config.path,))returndata-mysql_config.path="mysql_config"+mysql_config.path="/usr/local/mysql/bin/mysql_config"defget_config():importos,sys

  如何給Python的MySQL模塊加功能

  編譯通過,我們來試試添加的read_timeout這個參數。

conn=MySQLdb.connect(host=DB_SERVER,user=DB_USERNAME,passwd=DB_PASSWORD,db=DB_NAME,port=int(DB_PORT),client_flag=2,read_timeout=10)

  然后執行語句前,你試著把mysql用gdbhang住10s后,python就會異常拋錯

OperationalError:(2013,'LostconnectiontoMySQLserverduringquery')>/home/hoterran/Projects/dbaas/trunk/dbtest.py(18)()>mydb.execute_sql(conn,sql)(Pdb)--Return-->/home/hoterran/Projects/dbaas/trunk/dbtest.py(18)()->None>mydb.execute_sql(conn,sql)(Pdb)OperationalError:(2013,'LostconnectiontoMySQLserverduringquery')>(1)()->None 

以上是“怎樣給Python的MySQL模塊加功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永年县| 张家界市| 仲巴县| 广宁县| 米易县| 湘阴县| 含山县| 松原市| 襄垣县| 长治县| 罗甸县| 修水县| 收藏| 兴山县| 赣榆县| 来宾市| 昔阳县| 儋州市| 沿河| 霞浦县| 安阳县| 惠东县| 安塞县| 印江| 丰台区| 探索| 岢岚县| 乌拉特前旗| 历史| 科技| 儋州市| 虞城县| 绥中县| 台中市| 永川市| 池州市| 张家口市| 东丽区| 汕尾市| 长泰县| 镇康县|