
# 通过JDBC Catalog对接MySQL或PostgreSQL数据源
JDBC Catalog支持通过标准JDBC接口连接支持JDBC协议的数据库。该方式仅适用于少量的数据集成，例如将少量数据从数据源导入到Doris集群中，或对JDBC数据源中的小表进行关联查询。
使用JDBC Catalog无法实现对原数据源的查询加速，且也不适用于一次性访问大量数据的场景。
当前CloudTable Doris已经默认集成了MariaDB和PostgreSQL的Driver（已集成"mariadb-java-client-2.7.13.jar"和"postgresql-42.7.11.jar"驱动包），用户可以直接通过标准JDBC接口连接MySQL和PostgreSQL数据库。
#### 前提条件
- 已创建CloudTable Doris集群，集群运行正常。
- 被访问的数据源与Doris集群节点的网络已打通，并且保持网络连接稳定和低延迟。
- 仅支持对接PostgreSQL 11.x及之后版本数据库。
- 仅支持对接MySQL 5.7、8.0或之后版本数据库。
- 被访问的数据源未开启SSL连接。
- Doris用户需要具备创建Catalog和访问Catalog的权限，权限配置操作指导请参考[配置Doris用户权限](https://support.huaweicloud.com/usermanual-cloudtable/cloudtable_01_0365.html)。
 
#### 操作步骤
1. 使用SSH登录工具，通过弹性IP远程登录到Linux弹性云服务器。 
   具体登录操作步骤请参见弹性云服务器《用户指南》中的" [SSH密码方式登录](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0017955633.html)"。
   
   
2. 访问Doris集群，参见[使用MySQL客户端连接Doris普通集群](https://support.huaweicloud.com/usermanual-cloudtable/cloudtable_01_0228.html)或[使用MySQL客户端连接Doris安全集群](https://support.huaweicloud.com/usermanual-cloudtable/cloudtable_01_0389.html)。
3. 执行如下命令创建JDBC Catalog连接MySQL或PostgreSQL数据库： 
   - 连接MySQL数据库：
     ```
     CREATE CATALOG mysql_catalog PROPERTIES (
         'type' = 'jdbc',
         'user' = 'username',
         'password' = 'xxx',
         'jdbc_url' = 'jdbc:mariadb://host:3306',
         'driver_url' = 'mariadb-java-client-2.7.13.jar',
         'driver_class' = 'org.mariadb.jdbc.Driver'
     );
     ```
     
   
   - 连接PostgreSQL数据库：
     ```
     CREATE CATALOG postgresql_catalog PROPERTIES (
         'type' = 'jdbc',
         'user' = 'username',
         'password' = 'xxx',
         'jdbc_url' = 'jdbc:postgresql://host:5432/test?sslmode=disable',
         'driver_url' = 'postgresql-42.7.11.jar',
         'driver_class' = 'org.postgresql.Driver'
     );
     ```
     
   
   
   表1参数说明 
   | 参数           | 描述                                                                                                                                          |
   |:---|:---|
   | type         | Catalog类型，需设置为"jdbc"。                                                                                                                       |
   | user         | 访问MySQL或PostgreSQL数据源的用户名。                                                                                                                  |
   | password     | 访问数据源的用户对应的密码。                                                                                                                              |
   | jdbc_url     | 连接MySQL或PostgreSQL数据源的URL。 **需注意，连接PostgreSQL数据库时，需要指定访问的数据库名称并设置** **sslmode=disable** **来强制跳过证书校验操作。** |
   | driver_url   | 数据源JDBC驱动包，当前仅支持"mariadb-java-client-2.7.13.jar"和"postgresql-42.7.11.jar"。                                                                  |
   | driver_class | 数据源JDBC驱动程序的类名。                                                                                                                             |
      
   
   
4. 执行命令以下查看已创建的Catalog： 
   ```
   show catalogs;
   ```
   ![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002624961166.png "点击放大")
   
   
5. 执行以下命令，切换到指定的Catalog： 
   ```
   switch catalog_name;
   ```
   ![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002624962442.png)
   
   
6. 执行以下命令查看数据库： 
   ```
   show databases;
   ```
   ![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002627683519.png)
   ![](https://support.huaweicloud.com/usermanual-cloudtable/public_sys-resources/note_3.0-zh-cn.png)
   由于PostgreSQL数据源在对接的时候已经指定了数据库信息，针对PostgreSQL数据源，**show databases;**命令展示的是该数据库下的Schema。
   
   
7. 执行以下命令指定当前会话生效的数据库： 
   ```
   use database_name;
   ```
   
   
8. 执行以下命令查看当前数据库下的表： 
   ```
   show tables;
   ```
   ![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002597403572.png)
   
   
9. 执行以下命令查看表数据： 
   ```
   select * from table_name;
   ```
   ![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002597443510.png "点击放大")
   
   
 
#### 常见问题
问题现象：通过JDBC Catalog查询MySQL或PostgreSQL数据库报错权限不足：
![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002595169008.png "点击放大")
可能原因：当前Doris用户没有该Catalog的读权限。
处理步骤：需要为当前Doris用户授予对应Catalog读权限后再执行查询操作。
