MySQL兼容性参数
b_compatibility_user_host_auth
参数说明: 控制是否允许创建user@host
、'user'@'host'
之类的用户并兼容MySQL的user@host认证鉴权。对兼容MySQL的user@host进行认证时,需要在配置文件postgresql.conf中设为on。
该参数属于USERSET类型参数,请参考重设参数表1中对应设置方法进行设置。
MySQL在创建用户时会将用户名与主机名拼接成新的用户名,即user一致时,不同的host将被记录为多个用户。该参数与MySQL行为一致。
当b_compatibility_user_host_auth与b_compatibility_user_host_ignore同时为on时,生效参数为b_compatibility_user_host_ignore。
取值范围: 布尔型
on:开启该参数允许创建
user@host
、'user'@'host'
之类的用户并兼容MySQL的user@host认证鉴权。off:关闭该参数不允许创建
user@host
、'user'@'host'
之类的用户并且不支持user@host认证鉴权。
默认值: off
b_compatibility_user_host_ignore
参数说明: 控制是否允许创建user@host
、'user'@'host'
之类的用户,该参数不对@host进行认证鉴权,user@host等同于user。
如需对用户IP进行认证鉴权,可在pg_hba.conf中配置。
取值范围: 布尔型
on:开启该参数允许创建
user@host
、'user'@'host'
之类的用户,并忽略对@host进行认证鉴权,user@host等同于user。off:关闭该参数不允许创建
user@host
、'user'@'host'
之类的用户。
默认值: off
b_format_behavior_compat_options
参数说明: 数据库B模式兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。
该参数属于USERSET类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 字符串
默认值: 'set_keyword_as_colname, b_format_escape'
- 该参数仅在数据库兼容模式为MySQL时生效(即数据库实例初始化时指定DBCOMPATIBILITY='B')。
- 该参数属于会话级别参数,必须在配置文件设置或者session级别设置才会生效。
- 配置多个兼容性配置项时,相邻配置项用逗号隔开,例如:
set b_format_behavior_compat_options='enable_set_variables,set_session_transaction';
当前只支持下表所示的兼容性B模式配置项。
兼容性配置项 | 兼容性行为控制 |
---|---|
enable_set_variables | set语法增强控制开关。
set @v1 = 1; 。 |
set_session_transaction | set session transaction 控制开关。
set session transaction 等效于set local transaction 。 |
enable_modify_column | ALTER TABLE MODIFY 语义控制开关。
ALTER TABLE table_name MODIFY column_name data_type; 只修改列的数据类型。ALTER TABLE table_name MODIFY column_name data_type; 修改整个列定义。 |
default_collation | 默认字符序前向兼容开关。
|
fetch | FETCH语句结尾报错兼容开关。
|
enable_multi_charset | 多字符集功能的控制开关。
|
b_format_escape | V2.2 Build 15(Patch No.3)及以上版本支持选项b_format_escape,用来控制逃逸字符在MySQL兼容模式中的表现。
|
b_format_plpgsql_execute | 控制EXECUTE语句在PL/pgSQL的行为,设置该选项表示EXECUTE statement中的statement为PREPARE处理过的语句,而不是将statement视作一个sqlstring模板执行动态sql。示例参见PREPARE的示例3。 |
set_keyword_as_colname | 默认情况下 select name '别名'会认为'别名'是name列的别名,当b_format_behavior_compat_options中不包含set_keyword_as_colname时,select name '别名'为类型转换。 |