问题描述
我有一个RDS实例,它是AWS中的t3.medium Production MySQL Aurora数据库,并且已连接到我的Django应用程序。我正在尝试使用土耳其字符更改数据库的字符集。我创建了一个参数组并在下面设置参数;
collation_connection: utf8mb4_unicode_ci
collation_server: utf8mb4_unicode_ci
character_set_client: utf8mb4
character_set_connection: utf8mb4
character_set_database: utf8mb4
character_set_filesystem: utf8mb4
character_set_results: utf8mb4
character_set_server: utf8mb4
我还修改了RDS实例,并将我创建的组设置为DB cluster parameter group
参数。然后,我重新启动了实例,但是由于土耳其语字符,仍然出现诸如(1366,"Incorrect string value: '\\xC4\\xB1' for column 'first_name' at row 1")
之类的错误。我也尝试过从MySQL Workbench连接数据库并手动编辑表,但是它也不起作用。如何更改字符集?
解决方法
请勿更改所有这些设置。可能唯一需要更改的是SET NAMES
可以设置的项目-即3个字符集项目,以及排序规则项目。
- _system需要保留utf8
- _filesyste需要保持二进制
- SET NAMES更改_client,_connection和_results。