我在使用 python、mysql.connector (8.1.0) 时遇到问题,并尝试在 2 个不同的服务器上打开 2 个连接:
如果我跑步:
from mysql.connector import MySQLConnection
if __name__ in '__main__':
# A
try:
c1 = MySQLConnection(
host='host1',
user='*',
password='*',
database='A'
)
c1.close()
except Exception as e:
print(e)
finally:
print('c1')
# B
try:
c2 = MySQLConnection(
host='host2',
user='*',
password='*',
database='B'
)
c2.close()
except Exception as e:
print(e)
finally:
print('c2')
我遇到了例外:
Character set 'utf8' unsupported
对于 c2
如果我只运行 B 部分,那就没问题。就好像第一次连接后全局设置了某些内容。
有什么想法吗?
如果两个连接(c1 和 c2)在单独运行时工作正常,但在一起运行时产生“c2 不支持字符集‘utf8’”错误,则可能是由于两个连接之间的字符集配置存在兼容性问题。您可以尝试以下步骤:
为两个连接指定字符集: 显式指定两个连接的字符集,以确保它们使用相同的字符集。例如,您可以对两个连接使用“utf8mb4”
c1 = MySQLConnection(
host='host1',
user='*',
password='*',
database='A',
charset='utf8mb4'
)
c2 = MySQLConnection(
host='host2',
user='*',
password='*',
database='B',
charset='utf8mb4'
)
使用单独的连接实例:确保您不会无意中在两个连接(c1 和 c2)之间共享连接实例。每个连接都应该有自己单独的实例。