通过DAS登录RDS for PostgreSQL实例并创建数据库(推荐)
操作场景
通过数据管理服务(Data Admin Service,简称DAS)这款可视化的专业数据库管理工具,可获得执行SQL、高级数据库管理、智能化运维等功能,做到易用、安全、智能的管理数据库。云数据库RDS服务默认开通DAS连接权限。推荐使用DAS连接实例。
步骤1:登录RDS for PostgreSQL实例
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域。
- 单击页面左上角的
,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
- 在“实例管理”页面,选择目标实例,在操作列单击“登录”,进入数据管理服务实例登录界面。
图1 登录实例
您也可以在“实例管理”页面,单击目标实例名称,进入概览页面,在页面右上角单击“登录”,进入数据管理服务实例登录界面。
图2 登录实例 - 正确输入数据库用户名和密码,单击“登录”,即可进入您的数据库并进行管理。
- 登录用户名:root
- 数据库名称:postgres
- 密码:填写创建实例时设置的root密码。如果忘记密码,可以重置密码,详见重置管理员密码和root账号权限。
图3 登录实例
步骤2:创建数据库
- 在DAS界面,选择“SQL操作 > SQL查询”。
- 在SQL窗口,执行以下命令创建数据库。
create database db1;
您还可以指定模板库,并为每个数据库设置不同的字符集、LC_COLLATE(字符排序规则)和 LC_CTYPE(字符分类)等属性,详见语法介绍。
CREATE DATABASE name [ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace_name ] [ ALLOW_CONNECTIONS [=] allowconn ] [ CONNECTION LIMIT [=] connlimit ] [ IS_TEMPLATE [=] istemplate ] ]
- TEMPLATE
RDS forPostgreSQL数据库默认有template0、template1两个模板,默认模板为template1,使用template1模板库建库时不可指定新的字符集,否则会报错。用户也可以指定其他的自定义模板创建数据库。
- ENCODING
创建数据库时可以通过WITH ENCODING指定字符集,字符集含义及支持的字符集类型请参考PostgreSQL社区文档。
- LC_COLLATE
不同的排序规则下,相同字符串的比较其结果可能是不同的。
例如,在en_US.utf8下, SELECT 'a'>'A'; 执行结果为false,但在'C'下,SELECT 'a'>'A'; 结果为true。如果数据库从“O”迁移到RDS forPostgreSQL,数据库排序集需使用'C'才能得到一致的预期。支持的排序规则可以查询系统表 pg_collation。
- LC_CTYPE
- 其余参数请参考PostgreSQL社区文档。
- 通过TEMPLATE指定数据库模板
- 使用 template1 模板库建库时不可指定新的字符集和本地化collate属性,collate属性请参见▪设置数据库的本土化信息(collate)。
CREATE DATABASE my_db WITH TEMPLATE template1 ;
- 使用template0可指定字符集和本地化collate属性,collate属性请参见▪设置数据库的本土化信息(collate)。
CREATE DATABASE my_db WITH ENCODING = 'UTF8' LC_COLLATE ='zh_CN.utf8' LC_CTYPE ='zh_CN.utf8' TEMPLATE = template0 ;
- 创建数据库时不指定模板,则默认模板为template1。用户也可以指定其他的自定义模板创建数据库。
CREATE DATABASE my_db WITH TEMPLATE = mytemplate;
- 使用 template1 模板库建库时不可指定新的字符集和本地化collate属性,collate属性请参见▪设置数据库的本土化信息(collate)。
- 通过WITH ENCODING指定字符集
CREATE DATABASE my_db WITH ENCODING 'UTF8';
- LC_COLLATE和LC_CTYPE
- 查询字符集支持的LC_COLLATE和LC_CTYPE信息
SELECT pg_encoding_to_char(collencoding) AS encoding,collname,collcollate AS "LC_COLLATE",collctype AS "LC_CTYPE" FROM pg_collation;
encoding为空时,表示当前LC_COLLATE支持所有的字符集。
- 设置数据库的本土化信息(collate)
执行如下命令,创建一个 LC_COLLATE 和 LC_CTYPE 分别为 zh_CN.utf8 的数据库。
CREATE DATABASE my_db WITH ENCODING = 'UTF8' LC_COLLATE ='zh_CN.utf8' LC_CTYPE ='zh_CN.utf8' TEMPLATE = template0 ;
如果指定的LC_COLLATE与字符集不兼容,则会报如下错误信息。
- 指定的LC_COLLATE和LC_CTYPE必须与目标字符集兼容,参考▪查询字符集支持的LC_COLLATE和LC_C...查询出的字符集,否则会报错。
- 目前无法直接通过ALTER DATABASE命令修改已有数据库的LC_COLLATE和LC_CTYPE信息,但可以通过创建新的数据库,然后导出再导入数据的方式进行修改。
- 查询字符集支持的LC_COLLATE和LC_CTYPE信息