我收到错误尝试通过python 2.7 + MySQLdb 1.2.5 + sqlalchemy 1.0.9从Windows 7客户端连接到远程mysql数据库.这是最近将服务器的默认字符集更改为utf8mb4的结果.服务器正在运行MySQL 5.5.50.
我这样连接:
DB_ENGINE = sqlalchemy.create_engine("mysql+mysqldb://{user}:{pass}@{host}:{port}/{database}?charset=utf8mb4".format(**DB_SETTINGS))
Session = sqlalchemy.orm.sessionmaker(bind=DB_ENGINE)
Run Code Online (Sandbox Code Playgroud)
错误是:
File "C:\Applications\Python27\lib\site-packages\sqlalchemy\engine\default.py", line 385, in connect
return self.dbapi.connect(*cargs, **cparams)
File "C:\Applications\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "C:\Applications\Python27\lib\site-packages\MySQLdb\connections.py", line 221, in __init__
self.set_character_set(charset)
File "C:\Applications\Python27\lib\site-packages\MySQLdb\connections.py", line 312, in set_character_set
super(Connection, self).set_character_set(charset)
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2019, "Can't initialize character set utf8mb4 (path: C:\\mysql\\\\share\\charsets\\)")
Run Code Online (Sandbox Code Playgroud)
服务器的my.cnf包含以下内容:
init_connect = 'SET collation_connection = utf8mb4_unicode_ci'
init_connect = 'SET NAMES utf8mb4'
character-set-server …Run Code Online (Sandbox Code Playgroud)