ITPub博客

首页 > 应用开发 > Python > mysqlconnect bug 处理一例。

mysqlconnect bug 处理一例。

原创 Python 作者:babyyellow 时间:2021-01-08 16:52:24 0 删除 编辑

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 


好了,问题就再这里了。 


出错信息 在下面。 




  1. >>> import os ,sys

  2. >>> import dba1 as dba

  3. python 版本 ok

  4. >>> db=dba.mysql('192.168.x.x',3306,'hounew','hounew','hounew')

  5. Traceback (most recent call last):

  6.   File "C:\Python36\lib\site-packages\mysql\connector\utils.py", line 279, in read_string

  7.     idx = buf.index(end)

  8. ValueError: subsection not found


  9. During handling of the above exception, another exception occurred:


  10. Traceback (most recent call last):

  11.   File "C:\Python36\lib\site-packages\mysql\connector\connection.py", line 152, in _do_handshake

  12.     handshake = self._protocol.parse_handshake(packet)

  13.   File "C:\Python36\lib\site-packages\mysql\connector\protocol.py", line 233, in parse_handshake

  14.     packet, end=b'\x00')

  15.   File "C:\Python36\lib\site-packages\mysql\connector\utils.py", line 281, in read_string

  16.     raise ValueError("end byte not present in buffer")

  17. ValueError: end byte not present in buffer


  18. During handling of the above exception, another exception occurred:


  19. Traceback (most recent call last):

  20.   File "<pyshell#2>", line 1, in <module>

  21.     db=dba.mysql('192.168.75.100',3306,'houselib_new','houselib_new','houselib_new')

  22.   File "C:\Python36\lib\dba1.py", line 286, in __init__

  23.     self.conn = connection.MySQLConnection(host=host, port=port, user=user, password=passwd, database=database)

  24.   File "C:\Python36\lib\site-packages\mysql\connector\connection.py", line 104, in __init__

  25.     self.connect(**kwargs)

  26.   File "C:\Python36\lib\site-packages\mysql\connector\abstracts.py", line 960, in connect

  27.     self._open_connection()

  28.   File "C:\Python36\lib\site-packages\mysql\connector\connection.py", line 289, in _open_connection

  29.     self._do_handshake()

  30.   File "C:\Python36\lib\site-packages\mysql\connector\connection.py", line 155, in _do_handshake

  31.     raise errors.get_mysql_exception(msg=err.msg, errno=err.errno,

  32. AttributeError: 'ValueError' object has no attribute 'msg'

  33. >>> 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-2748529/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
oracle MySQL Postgresql 专职数据库dba。 系统架构师。 mysql 官方认知dba 。 15年专职dba 经验。 潜意识沟通实证者 心理咨询师。 禅修布道者, 禅修指导员。 禅定实证者。

注册时间:2010-12-02

  • 博文量
    367
  • 访问量
    1908693