MySQL协议兼容
- openGauss通过抽象协议层接口,在dolphin插件中实现了MySQL协议兼容,用户在设置相关参数后,可通过MySQL的JDBC driver或者MySQL命令行客户端,直接连接openGauss。
架构图
- openGauss根据协议兼容配置项,拉起相关监听端口号;当用户通过MySQL客户端直连dolphin协议监听端口号时,openGauss可以通过dolphin协议兼容插件来响应本次网络请求。
当前支持的MySQL客户端版本
- MySQL JDBC driver: 8.0.28及其以下
- MySQL 命令行客户端: 8.0.28及其以下
约束
- 不支持游标(指在JDBC中通过useCursorFetch、setFetchSize的方式获取数据)。
- 不支持执行存储过程。
使用方式
mysql_native_password 认证方式
- 创建B类型数据库,创建用户并设置MySQL native密码(可根据需要通过GRANT命令给新用户赋权):
CREATE DATABASE proto_test_db DBCOMPATIBILITY 'B';
\c proto_test_db
CREATE USER proto_test WITH PASSWORD 'Proto_test123';
SELECT set_native_password('proto_test', 'Proto_test123', '');
须知: (第一个参数为用户名,第二个参数为MySQL连接密码,第三个参数为原密码;第一次设置时可以为空或者任意值,后续更改密码以及更改认证方式需要原密码做验证)
- 设置GUC参数 enable_dolphin_proto 为 on。
- 设置MySQL协议监听端口号, dolphin_server_port,注意端口号需要与openGauss本身监听的端口号 port 不同。
- 如果数据库中存在多个B兼容性数据库,需要通过dolphin.default_database_name设置默认连接的数据库实例名。
- 设置完成后,即可通过MySQL客户端,使用对应的用户名和密码连接openGauss。
须知:
- enable_dolphin_proto和dolphin_server_port为POSTMASTER类型参数,修改需要重启才生效。
- 使用MySQL客户端连接openGauss前,请确认listen_addresses配置正确,pg_hba允许MySQL客户端所在机器IP连接。可参考 配置客户端接入认证。
- 使用MySQL客户端连接时,可通过形如 mysql -u [user_name] -p --port [dolphin_server_port] -h [opengauss_listen_address] 的方式连接。
- 备机的可连接性受参数hot_standby和dolphin_hot_standby参数控制。
caching_sha2_password 认证方式
- 创建B类型数据库,创建用户并设置MySQL caching_sha2密码(可根据需要通过GRANT命令给新用户赋权):
CREATE DATABASE proto_test_db DBCOMPATIBILITY 'B';
\c proto_test_db
CREATE USER proto_test WITH PASSWORD 'Proto_test123';
SELECT set_caching_sha2_password('proto_test', 'Proto_test123', '');
须知: (第一个参数为用户名,第二个参数为MySQL连接密码,第三个参数为原密码;第一次设置时可以为空或者任意值,后续更改密码以及更改认证方式需要原密码做验证)
- 设置GUC参数 enable_dolphin_proto 为 on。
- 设置MySQL协议监听端口号, dolphin_server_port,注意端口号需要与openGauss本身监听的端口号 port 不同。
- 如果数据库中存在多个B兼容性数据库,需要通过dolphin.default_database_name设置默认连接的数据库实例名。
- 设置MySQL得SSL文件信息,文件路径不需要设置且为数据目录
- 设置完成后,即可通过MySQL客户端,使用对应的用户名和密码连接openGauss。
须知:
- enable_dolphin_proto和dolphin_server_port为POSTMASTER类型参数,修改需要重启才生效。
- 使用MySQL客户端连接openGauss前,请确认listen_addresses配置正确,pg_hba允许MySQL客户端所在机器IP连接。可参考 配置客户端接入认证。
- 使用MySQL客户端连接时,可通过形如 mysql -u [user_name] -p --port [dolphin_server_port] -h [opengauss_listen_address] 的方式连接。
- 备机的可连接性受参数hot_standby和dolphin_hot_standby参数控制。
意见反馈