首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置Amazon RDS mysql以存储中文字符

问配置Amazon RDS mysql以存储中文字符
EN

Stack Overflow用户
提问于 2013-06-06 11:24:12
回答 3查看 5.1K关注 0票数 6

如何配置Amazon RDS以正确的方式存储中文字符?目前,文本都变成了“?”。

我已经创建了新的参数组,将字符集设置为utf8,并修改了实例。以下是详细信息:

代码语言:javascript
复制
mysql> show variables like '%char%';
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | utf8                                      |
| character_set_connection | utf8                                      |
| character_set_database   | utf8                                      |
| character_set_filesystem | binary                                    |
| character_set_results    | utf8                                      |
| character_set_server     | utf8                                      |
| character_set_system     | utf8                                      |
| character_sets_dir       | /rdsdbbin/mysql-5.5.27.R1/share/charsets/ |
+--------------------------+-------------------------------------------+


+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-18 23:33:39

在遵循@Peter Venderberghe的答案配置RDS后,我仍然不能让它正确地存储中文字符。

最后,我使用mysql命令行连接到RDS (您可以使用mysql workbench或其他您喜欢的客户端工具)。

mysql -u用户名-pPASSWORD -h主机名或-h数据库名

注意:

1)。在连接到RDS之前,请记住将您的 添加到RDS的安全组入站

2)。除了PASSWORD,您还可以在RDS console上获取相关信息(安全组、USERNAME...etc)。PASSWORD应该是您为实例创建的那个。HOSTNAMEORIP是控制台上的“端点”(不带端口)。

3)。-p和PASSWORD之间没有空格。这就是-pPASSWORD。

使用您熟悉的工具连接到mysql后,您需要给它一些命令:

代码语言:javascript
复制
# set character set and collation for database
mysql> alter database DATABASENAME CHARACTER SET utf8 COLLATE utf8_unicode_ci;
--------
# set character set and collation for new records in a table
mysql> ALTER TABLE TABLENAME CHARACTER SET utf8 COLLATE utf8_unicode_ci;
# set character set and collation for existing records in a table
mysql> ALTER TABLE TABLENAME CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; 

如果您有许多表,则可能需要编写一个脚本来执行此任务。但是,这不在本答案的范围内。

经过上面的配置,你应该能够用中文摇滚乐了!

票数 14
EN

Stack Overflow用户

发布于 2014-04-08 22:26:17

如果您使用的是RDS,可以为您的mysql实例设置参数组。

  1. 创建新参数组
  2. 使用新参数组修改数据库实例
  3. 重新启动数据库实例

完成了!这应该很简单。等你到了那里你就会明白了。

票数 5
EN

Stack Overflow用户

发布于 2013-06-06 13:02:34

确保您使用的是UTF-8字符集。

永久设置字符集的最简单方法是使用以下内容更新客户端my.cnf:

代码语言:javascript
复制
[client]
default-character-set=utf8

有关连接字符集的详细信息,可在此处找到:http://dev.mysql.com/doc/refman/5.5/en/charset-connection.html

当使用PHP函数时(例如MySQL客户端)您可以通过发送查询来设置连接字符集

代码语言:javascript
复制
SET NAMES utf8

您可以通过以下博客将Amazon RDS配置为使用Utf-8字符集:http://matthew.mceachen.us/blog/howto-configure-an-amazon-rds-instance-to-use-utf-8-925.html

我希望这能帮到你。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16953232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档