openGauss通过抽象协议层接口,在dolphin插件中实现了MySQL协议兼容,用户在设置相关参数后,可通过MySQL的JDBC driver或者MySQL命令行客户端,直接连接openGauss。
当前支持的MySQL客户端版本
MySQL JDBC driver: 5.1.47
MySQL 命令行客户端: 5.7.26~5.7.42
约束
不支持游标(指在JDBC中通过useCursorFetch、setFetchSize的方式获取数据)。
不支持执行存储过程。
使用方式
1. 创建插件
create extension dolphin;
\dx
2. 创建数据库及用户
创建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');
3. 设置GUC参数
enable_dolphin_proto 为 on。
gs_guc reload -N all -I all -c "enable_dolphin_proto=on"
4. 设置MySQL协议监听端口号
dolphin_server_port,注意端口号需要与openGauss本身监听的端口号 port 不同。
默认开放3308端口
# show dolphin_server_port ;
dolphin_server_port
---------------------
3308
(1 row)
如果数据库中存在多个B兼容性数据库,需要通过dolphin.default_database_name设置默认连接的数据库实例名。
5. 连接测试
- MySQL客户端连接
设置完成后,即可通过MySQL客户端,使用对应的用户名和密码连接openGauss。
mysql -uproto_test -p -P3308 -h x.x.x.x
- MySQL jdbc连接
url=jdbc:mysql://x.x.x.x:3308/proto_test_db?connectTimeout=5&tcpKeepAlive=true&useSSL=false