With version 5.0.0 of GBase 8c, through an abstract protocol layer interface and the dolphin plugin, the B compatibility database (dbcompatibility='B', referred to as B compatibility database hereafter) supports the MySQL protocol. By setting the relevant parameters, users can directly connect to GBase 8c using the MySQL JDBC driver or MySQL command-line client.
Using Dolphin
The plugin is automatically installed and loaded, no manual installation or loading is required.
Use the OM tool to install GBase 8c. Refer to the "GBase 8c V5_5.0.0 Installation and Deployment Manual" for details.
Create a B database and connect to it using the initial user. The Dolphin plugin is enabled by default.
create database dbname with DBCOMPATIBILITY='B';
\q
$gsql -d dbname -p 15400 -U gbase
Dolphin Usage Restrictions
- Miniature versions are not supported.
- Deleting the dolphin plugin is not supported.
- The dolphin plugin can only be created in B compatibility databases.
- The dolphin plugin needs to create data types, functions, etc., under schemas like pg_catalog. Therefore, loading the dolphin plugin requires initial user permissions. GBase 8c will automatically load the dolphin plugin when the B database is first connected to by the initial user or a user with initial user permissions. If a B compatibility database has never been connected by the initial user or a user with initial user permissions, it will not load the dolphin plugin.
- All new/modified syntax in dolphin does not support help viewing via \h in the gsql client and does not support auto-completion in the gsql client.
- Creating the dolphin plugin will delete functions and types with the same name required by the plugin and previously existing dependent objects in the database.
- The dolphin plugin depends on the public schema and therefore does not support deleting the public schema using the dropschema method.
- When connecting to a B compatibility database with the dolphin plugin installed, the GUC parameter behavior_compat_options will be modified by default to add the display_leading_zero and select_into_return_null options for compatibility.
Constraints
Supported MySQL Client Versions
- MySQL JDBC Driver: 5.1.47
- MySQL Command-Line Client: 5.7.26 to 5.7.42
Unsupported Features
- Cursors (i.e., fetching data using useCursorFetch and setFetchSize in JDBC) are not supported.
- Executing stored procedures is not supported.
Usage
Create a B-type database, create a user, and set a MySQL native password (you can grant privileges to the new user using the GRANT command as needed):
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');
Enable Dolphin Database Protocol Parameters
gs_guc set -N all -I all -c "enable_dolphin_proto = on"
Note: This is a POSTMASTER parameter and requires a restart to take effect.
Set MySQL Protocol Listening Port
Set the MySQL protocol listening port, dolphin_server_port. The port number must be different from the port number that GBase 8c itself listens on.
gs_guc set -N all -I all -c "dolphin_server_port = 3307"
Note: This is a POSTMASTER parameter and requires a restart to take effect.
Set Default Database Instance Name
If multiple B compatibility databases exist in the database, set the default connected database instance name using dolphin.default_database_name.
alter database proto_test set dolphin.default_database_name = my_test;
After setting up, you can connect to GBase 8c using the MySQL client with the corresponding username and password.
Notes
- Before using the MySQL client to connect to GBase 8c, ensure that the listen_addresses configuration is correct and pg_hba allows connections from the MySQL client machine IP.
- When connecting using the MySQL client, use the following format:
mysql -u [user_name] -p --port [dolphin_server_port] -h [GBase 8c_listen_address]