在使用pymysql的connect时 无法查看参数顺序,所以一定要指定参数对应关系,否则会一直连接不成功。
在包里发现了connect的参数 记录下:
self, host="localhost", user=None, password="", database=None, port=3306, unix_socket=None, charset='', sql_mode=None, read_default_file=None, conv=decoders, use_unicode=None, client_flag=0, cursorclass=Cursor, init_command=None, connect_timeout=None, ssl=None, read_default_group=None, compress=None, named_pipe=None, no_delay=None, autocommit=False, db=None, passwd=None, local_infile=False, max_allowed_packet=16*1024*1024, defer_connect=False
具体代码如下:
self.conn = pymysql.connect(host=areaInfo['ip'] ,user='root' ,passwd='' ,db=areaInfo['default'] , port=areaInfo['port'] ,charset='utf8')
若不指定参数 会出现无法连接到mysql的错误。
然后因为上一篇提到了中文乱码的问题,发现在这里不实用并且会报错,所以我们需要判断mysql数据库是什么编码格式
还好pymysql提供了查询编码格式的方式
连接成功后查看此变量的值则可以查询出,若不是utf8 需要上一篇提到的方式进行处理。
self.conn.encoding
但是对于sqlserver数据库还没找到一个可以查看编码格式的接口,若有知道的朋友希望能指教。