开发者社区 > 数据库 > 关系型数据库 > 正文

【RDS】RDS MySQL如何保证数据库字符编码正确?

已解决

RDS MySQL如何保证数据库字符编码正确?

展开
收起
云上猫猫 2022-01-14 11:45:38 1232 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    字符集是数据库设计过程中需要详细考虑的一点,您需要根据业务场景、用户数据等方面来综合考虑。

    字符编码的介绍

    1、登录RDS实例,请参见连接MySQL实例

    2、依次执行如下SQL语句,查看相应数据库的字符集。

    use [$DB_Name];
    show variables like '%character%';
    

    说明:[$DB_Name]为数据库名。

    系统显示类似如下。

    image (2).png

    说明:

    a.以上参数必须保证除了character_set_filesystem外的参数都统一,才不会出现乱码的情况。

    b.character_set_client、character_set_connection以及character_set_results是客户端的设置。

    c.character_set_system、character_set_server以及character_set_database是服务器端的设置。

    d.服务器端的参数优先级是character_set_database > character_set_server > character_set_system。

    保证数据库字符编码正确

    1、执行如下SQL语句,修改客户端字符集。

    set names [$Character_Set]

    说明:[$Character_Set]为字符集。

    2、执行如下SQL语句,修改character_set_database参数。

    ALTER DATABASE [$DB_Name] CHARACTER SET = [$Character_Set] COLLATE = [$Rules];

    说明:[$Rules]为字符集规则。

    3、登录RDS管理控制台,在页面左上角,选择实例所在地域。找到目标实例,单击实例ID。在左侧导航栏中单击参数设置。

    4、在可修改参数页签下查找到character_set_server进行修改,然后单击确定。

    说明:修改character_set_server参数需要重启实例,建议在业务低峰期进行操作。 修改character_set_server参数

    5.png

    5、在页面右上角单击提交参数,在弹出的对话框中单击确定,等待实例重启即可。

    说明:该参数修改后,仅对开启高权限账号的实例后,创建的数据库有效,对当前数据库无效。

    6、character_set_system暂时不提供更改,但是由于其优先级最低,因此影响不大。做完上述的设置之后基本上可以保证不会出现乱码,在代码中设置客户端字符编码时建议通过第1步的SQL语句来修改客户端的设置。

    2022-01-14 12:59:30
    赞同 展开评论 打赏

阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。

相关产品

  • 云数据库 RDS MySQL 版
  • 云数据库 RDS
  • 相关电子书

    更多
    搭建电商项目架构连接MySQL 立即下载
    搭建4层电商项目架构,实战连接MySQL 立即下载
    PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

    相关镜像