pycharm-python连接mysql报错1115 (42000): Unknown character set: 'utf8mb4'

我的数据库链接信息之前是下面这样的,python文件执行时就报错,mysql.connector.errors.ProgrammingError: 1115 (42000): Unknown character set: ‘utf8mb4’
db_config ={‘host’: ‘xxxx’,
‘port’: ‘3306’,
‘username’: ‘xxxx’,
‘password’: ‘xxxx’,
‘database’: ‘future’}
于是我就在网上搜啊搜,看到很多解决方法,不过都是告诉你怎么设置sql文件的改成utf8什么的,但是没有人说如何修改python文件或者代码或者pycharm的。后来突发奇想把上面的配置文件加了一个 ‘charset’:'utf8’就好了 ,因为现在的数据库是用的utf8老版的,如果你不告诉数据库,他就默认用utf8mb4,所以改成utf8就行了,下面是我链接数据库的代码
db_config ={‘host’: ‘xxxx’,
‘port’: ‘3306’,
‘username’: ‘xxxx’,
‘password’: ‘xxxx’,
‘database’: ‘future’,
’charset’:‘utf8’}



from mysql import connector
from xxxx.common.read_config import ReadConfig
from xxxx.common import project_path

class DoMysql:
    def do_mysql(self,query,flag=1):
        '''query:表示sql查询语句
           flag:1表示查询结果有以条,2表示查询结果有 多条'''
        db_config =ReadConfig(project_path.config_path).get_other('DB','db_config')#从配置文件获取数据库链接的ip等
        cnn = connector.connect(**db_config)
        cursor = cnn.cursor()
        cursor.execute(query)  # 查询不需要commit

        if flag==1:
            res = cursor.fetchone()  # 返回的元组
            #print('查询数据库结果为:{}'.format(res))
        else:
            res = cursor.fetchall()  # 返回的列表嵌套元组
            #print('查询数据库结果为:{}'.format(res))
        return res
        # #增删改数据库,update
        # update="update member set RegName='ww' where id='1139812'"
        # cursor.execute(update)
        # cursor.execute('commit')#提交

if __name__=='__main__':
    query="select id from loan where MemberID='293366'; "    #"select min(id) from member where id>'1139813'# "
    sq=DoMysql().do_mysql(query,2)
    #print('查询数据库结果为:{}'.format(sq))


你可能感兴趣的:(python问题总结)