mysqlconnect bug 處理一例。
python 3.6 遇到這個問題。
其實不是 python 的問題 是 mysqlconnect 驅動的問題。
用 mysqlconnect 去連結 mysql 5.5.x 版本的資料庫的時候。 就報這個錯誤了。
修改方法放這裡了。
C:\Python36\Lib\site-packages\mysql\connector\protocol.py
mysql connect 的這個 protocol.py 程式碼
第 225 行 。
capabilities & ClientFlag.PLUGIN_AUTH: (packet res[].startswith()):
把
and res['server_version_original'].startswith("5.5.8")):
修改為
and (res['server_version_original'].startswith("5.5.8") or res['server_version_original'].startswith("5.5.9"))):
然後儲存 從新 連結資料庫就可以了。
當然了 ,如果你用的 5.5.x 就再後面不停的加 or 然後加版本就行了。
這本身是 mysql 的一個bug
好了,問題就再這裡了。
出錯資訊 在下面。
-
>>> import os ,sys
-
>>> import dba1 as dba
-
python 版本 ok
-
>>> db=dba.mysql('192.168.x.x',3306,'hounew','hounew','hounew')
-
Traceback (most recent call last):
-
File "C:\Python36\lib\site-packages\mysql\connector\utils.py", line 279, in read_string
-
idx = buf.index(end)
-
ValueError: subsection not found
-
-
During handling of the above exception, another exception occurred:
-
-
Traceback (most recent call last):
-
File "C:\Python36\lib\site-packages\mysql\connector\connection.py", line 152, in _do_handshake
-
handshake = self._protocol.parse_handshake(packet)
-
File "C:\Python36\lib\site-packages\mysql\connector\protocol.py", line 233, in parse_handshake
-
packet, end=b'\x00')
-
File "C:\Python36\lib\site-packages\mysql\connector\utils.py", line 281, in read_string
-
raise ValueError("end byte not present in buffer")
-
ValueError: end byte not present in buffer
-
-
During handling of the above exception, another exception occurred:
-
-
Traceback (most recent call last):
-
File "<pyshell#2>", line 1, in <module>
-
db=dba.mysql('192.168.75.100',3306,'houselib_new','houselib_new','houselib_new')
-
File "C:\Python36\lib\dba1.py", line 286, in __init__
-
self.conn = connection.MySQLConnection(host=host, port=port, user=user, password=passwd, database=database)
-
File "C:\Python36\lib\site-packages\mysql\connector\connection.py", line 104, in __init__
-
self.connect(**kwargs)
-
File "C:\Python36\lib\site-packages\mysql\connector\abstracts.py", line 960, in connect
-
self._open_connection()
-
File "C:\Python36\lib\site-packages\mysql\connector\connection.py", line 289, in _open_connection
-
self._do_handshake()
-
File "C:\Python36\lib\site-packages\mysql\connector\connection.py", line 155, in _do_handshake
-
raise errors.get_mysql_exception(msg=err.msg, errno=err.errno,
-
AttributeError: 'ValueError' object has no attribute 'msg'
-
>>>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-2748529/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解決了一例awk中substr處理漢字字串的bug字串
- OGG 故障處理一例
- goldengate故障處理一例Go
- 處理生產bug
- ORA-04030處理一例
- ORA-00054 故障處理一例
- ORA-16038處理一例
- goldengate故障處理一例(續)Go
- database link故障處理一例Database
- 處理mysql複製故障一例薦MySql
- bug及異常處理1
- [BI專案記]-BUG處理
- 批處理LOG_NDEBUG
- ORACLE 10G rac故障處理一例Oracle 10g
- oracle dataguard資料同步故障處理一例Oracle
- oradebug處理DB hang情況
- 遭遇mysql 5.6.10 BUG 一例MySql
- 處理 latch_cache_buffers_chains等待事件一例AI事件
- 處理crs_stat -t狀態unknown一例
- OGG-00751錯誤處理一例
- 事件處理函式OnEnter OnExit 使用一例 (轉)事件函式
- goldengate複製過程字符集處理一例Go
- OGG-01031錯誤處理一例
- 11201監聽BUG處理
- 一個停下車來處理 BUG 的 IT 男……
- vs just-initime debugger 處理
- TiDB DM同步報錯ErrCode 44006處理一例TiDB
- MySQL Case-information_schema檢視查詢慢處理一例MySqlORM
- 【故障處理】Bug : ASM FAILS WITH CHECKRESOURCE ERROR ERROR CODE = 139ASMAIError
- 【問題處理】Windows環境下exp備份資料ORA-00904錯誤處理一例Windows
- 【問題處理】Error accessing PRODUCT_USER_PROFILE錯誤一例Error
- Java 執行緒內 遞迴 Bug 一例Java執行緒遞迴
- WLS 10.3.0 更新發布應用異常終止處理一例
- 處理set autotrace故障又一例_ora-942_sp2-0611
- 設定10046跟蹤處理資料庫不能open一例資料庫
- smon程式互為死鎖案例--oracle一個bug處理Oracle
- [20190718]12c壞塊處理一例.txt
- aix系統資料庫sqlplus登陸報錯處理一例AI資料庫SQL