无法连接到数据库
最后修改时间:2023 年 9 月 20 日步骤 1. 检查您的网络设置
数据库可以在本地、服务器或云中工作。对于服务器和云数据库,您需要网络连接。要验证连接是否可用,请使用ping和telnet命令。
使用ping命令,您可以确保可以从源计算机访问目标计算机。打开命令行并键入以下命令:ping -a <host_IP>
,其中-a
是将地址解析为主机名的命令选项(如果可能)。如果将主机名与ping命令一起使用,主机名将解析为 IP 地址。例如,ping -a example.com
解析为PING example.com (93.184.216.34)
.
ping -a <host_IP>
使用telnet命令,您可以测试与远程计算机的连接并发出命令。如果指定端口作为命令的参数telnet
,则可以测试给定端口上与远程主机的连接。如果连接成功,您会看到消息:Connected to <host_IP>
。
telnet <host_IP> <port_number>
笔记
出于安全原因,DBMS 通常会丢弃所有 telnet 连接。telnet 命令允许您检查端口是否打开用于通信。
步骤 2. 检查您的连接属性
每个数据库(MySQL、PostgreSQL、Oracle 或任何其他供应商)都有自己的连接设置。大多数数据库都包含连接设置:
主机:计算机或存储数据库的其他设备的主机名。它可以是 IP 地址127.0.0.1或域名localhost。
数据库:您要连接的数据库的名称。您可以在数据库服务器的设置中找到数据库名称,也可以询问数据库管理员。在某些情况下,可以在数据库命令行中运行查询来查看所有可用数据库的名称。例如,在 MySQL 中您可以运行
SHOW DATABASES;
.用户:具有足够权限对数据库执行操作的用户名。在数据库命令行中运行查询以查看所有可用数据库的名称。例如,在 MySQL 中您可以运行
SHOW GRANTS;
.密码:用户的密码。
端口:标识主机之间连接点的数字。主机使用端口号来确定必须与哪个应用程序、服务或进程建立连接。不同的数据库供应商为其数据库使用不同的端口。以下列表是默认端口号的列表。
小贩
默认端口
亚马逊红移
5439
ApacheDerby
第1527章
Apache卡桑德拉
9042
ApacheHive
10000 (Hive Server2) 或 9083 (Hive Metastore)
Azure SQL 数据库
第1433章
ClickHouse
8123
Couchbase 查询查询服务
11210
Exasol
8563
Greenplum
5432
氢2
8082
HSQL数据库
9001
IBM Db2 LUW
50000
玛丽亚数据库
3306
微软SQL服务器
1433 (TCP)、1434(可能需要 UDP)
MySQL
3306
Oracle
1521
PostgreSQL
5432
Snowflake
第443章
SQLite
没有任何
赛贝斯ASE
5000
Vertica
5433
笔记
您的系统上的实际端口号可能有所不同。与数据库管理员、服务器设置或托管提供商验证您使用的端口号是否正确。
步骤3.检查驱动版本
使用 JDBC 驱动程序,您可以与 IntelliJ IDEA 中的数据库管理系统 (DBMS) 进行交互。每个 DBMS 都需要自己的 JDBC 驱动程序。确保驱动程序版本和 DBMS 版本相互兼容。
从 IntelliJ IDEA 中,您可以下载所有支持的供应商的驱动程序。您可以在驱动程序列表中查看受支持供应商的完整列表。或者,您可以将自己的驱动程序添加到现有供应商,或为不在驱动程序列表中的供应商创建新的驱动程序条目。
要打开驱动程序列表,请在 数据库工具窗口(视图 | 工具窗口 | 数据库)中,单击数据源属性图标或按。ShiftEnter
下载驱动并选择驱动版本
要从 JetBrains FTP 服务器下载驱动程序,请从驱动程序列表中选择供应商,然后单击下载版本。驱动程序文件窗格中的<version_number>链接。
要更改驱动程序版本,请单击版本。驱动程序文件窗格中的<version_number>链接并选择您需要的驱动程序版本。
使用用户驱动程序文件
打开数据源属性。您可以使用以下选项之一打开数据源属性:
在 数据库工具窗口(视图|工具窗口| 数据库)中,单击数据源属性图标。
按。CtrlAltShift0S
在“数据源和驱动程序”对话框中,确保您位于“驱动程序”选项卡上。
在“数据源和驱动程序”对话框中,单击“添加”图标 ( )。
在名称字段中,输入驱动程序的名称。
在“驱动程序文件”窗格中,单击“添加”图标 ( ) 并选择“自定义 JAR...”。
导航到 JDBC 驱动程序的 JAR 文件,选择它,然后单击“确定”。
在“类”字段中,指定要用于驱动程序的值。
单击“应用”。
要从驱动程序对话框创建数据源,请单击创建数据源。
为现有数据源配置 JDBC 驱动程序
您可以将库添加到现有驱动程序或完全替换驱动程序。
打开数据源属性。您可以使用以下选项之一打开数据源属性:
在 数据库工具窗口(视图|工具窗口| 数据库)中,单击数据源属性图标。
按。CtrlAltShift0S
单击数据源设置中的驱动程序链接,然后选择转到驱动程序。
单击提供的驱动程序条目,然后单击删除( )。
要恢复更改,请单击窗口右下部分的“回滚更改”图标 ( )。
在“驱动程序文件”窗格中,单击“添加”图标 ( ) 并选择“自定义 JAR...”。
在文件浏览器中,导航到 JDBC 驱动程序的 JAR 文件,选择它,然后单击“确定”。
在“类”字段中,指定要用于驱动程序的值。
单击“应用”。
步骤 4. 检查是否需要 SSH 或 SSL 连接
为了使与数据库的连接更加安全,某些服务需要使用 SSH 或 SSL。
SSL协议
以下过程描述了适合大多数数据库的 SSL 配置。对于某些数据库,您需要使用另一种方法才能成功连接。您可以在 DataGrip 文档中查看Cassandra和Heroku Postgres的配置示例。
使用 SSL 连接到数据库
打开数据源属性。您可以使用以下选项之一打开数据源属性:
在 数据库工具窗口(视图|工具窗口| 数据库)中,单击数据源属性图标。
按。CtrlAltShift0S
在“数据源”选项卡上,选择要修改的数据源。
单击SSH/SSL选项卡并选中使用 SSL复选框。
在CA 文件字段中,导航到 CA 证书文件(例如mssql.pem)。
您可以将证书文件字段留空并使用信任库从其包含的证书中获取所需的证书。为此,请勾选“使用信任库”复选框并选择您要使用的信任库。
IDE:使用 IDE 接受的证书。您可以在工具 |中添加新的接受的证书。服务器证书。
JAVA:使用 JAVA 信任库证书。
系统:使用系统信任库证书。
在客户端证书文件字段中,导航到客户端证书文件(例如client-cert.pem)。
在客户端密钥文件字段中,导航到客户端密钥文件(例如client-key.pem)。
从模式列表中,选择验证模式:
要求
如果提供了证书,则验证服务器是否识别客户端证书。
验证CA
如果提供了证书,则验证服务器是否识别客户端证书。
通过检查证书链直至存储在客户端上的根证书来验证服务器。
全面验证
如果提供了证书,则验证服务器是否识别客户端证书。
通过检查证书链直至存储在客户端上的根证书来验证服务器。
验证服务器主机以确保其与服务器证书中存储的名称匹配。
如果任一证书无法验证,SSL 连接就会失败。
要确保与数据源的连接成功,请单击“测试连接”。
笔记
建议使用PEM证书。
笔记
对于自签名证书以及在某些情况下使用受信任根实体颁发的证书,您在使用最新的 JDBC 驱动程序版本时可能会遇到错误。如果您的 Java 密钥库不接受证书链,SSL 连接可能会失败。作为临时解决方案,尝试降级 JDBC 驱动程序(例如,对于 MySQL 连接器,需要切换到 5.1.40 版本。)
禁用与数据库的 SSL 连接
打开数据源属性。您可以使用以下选项之一打开数据源属性:
在 数据库工具窗口(视图|工具窗口| 数据库)中,单击数据源属性图标。
按。CtrlAltShift0S
在“数据源”选项卡上,选择要修改的数据源。
单击SSH/SSL选项卡并清除使用 SSL复选框。
单击“应用”。
从其他数据源复制 SSL 设置
如果您为一个数据源配置了 SSL 设置,则可以将它们复制到另一数据源。
打开数据源属性。您可以使用以下选项之一打开数据源属性:
在 数据库工具窗口(视图|工具窗口| 数据库)中,单击数据源属性图标。
按。CtrlAltShift0S
在“数据源”选项卡上,选择要修改的数据源。
单击SSH/SSL选项卡并选中使用 SSL复选框。
单击复制自...链接并选择要复制的配置。
SSH
Secure Shell 或 SSH 是一种网络协议,用于加密客户端和服务器之间的连接。
在 IntelliJ IDEA 中,您可以通过以下方式之一创建 SSH 连接:
使用 IntelliJ IDEA SSH 隧道。IDE 将使用您设置的 SSH 配置创建 SSH 隧道。
IntelliJ IDEA SSH 隧道
IntelliJ IDEA 可以根据您设置的 SSH 配置创建 SSH 隧道。要访问 SSH 配置设置,请按打开 IDE 设置并选择“工具”|“ SSH 配置。CtrlAlt0S
要对数据源使用 SSH 隧道,请选中“数据源和驱动程序”对话框 ( )的 SSH/SSL选项卡中的“使用 SSH 隧道”复选框。ShiftEnter
笔记
在大多数情况下,在SSH/SSL选项卡中设置 SSH 配置后,您不需要修改常规选项卡设置,因为 IntelliJ IDEA 将连接到 SSH 隧道的本地端。例外情况是,当您手动创建 SSH 隧道时,在这种情况下,您需要在“常规”选项卡上设置为“主机”。
localhost
连接后,当服务器建立与数据库的连接时,SSH 隧道主机名将在具有 SSH 服务器的计算机上解析。
所有创建的 SSH 连接都在项目中的所有数据源之间共享。如果您不想在项目之间共享连接,请在 SSH 连接设置中选中仅对此项目可见复选框。
使用 SSH 连接到数据库
打开数据源属性。您可以使用以下选项之一打开数据源属性:
在 数据库工具窗口(视图|工具窗口| 数据库)中,单击数据源属性图标。
按。CtrlAltShift0S
选择要更改连接设置的数据源配置文件。
单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。
单击添加 SSH 配置按钮 ( )。
在SSH对话框中,单击“添加”按钮。
如果您不想在项目之间共享配置,请选中仅对此项目可见复选框。
在Host、Username和Port字段中,指定您的连接详细信息。
从身份验证类型列表中,您可以选择身份验证方法:
密码:使用密码访问主机。要在 IntelliJ IDEA 中保存密码,请选中保存密码复选框。
密钥对(OpenSSH 或 PuTTY):通过密钥对使用SSH 身份验证。要应用此身份验证方法,您必须在客户端计算机上拥有私钥并在远程服务器上拥有公钥。IntelliJ IDEA 支持使用OpenSSH实用程序生成的私钥。
指定存储私钥的文件的路径,并在相应字段中输入密码(如果有)。要让 IntelliJ IDEA 记住密码,请选中“保存密码”复选框。
OpenSSH 配置和身份验证代理:使用管理 SSH 密钥的凭据帮助程序应用程序,例如ssh-agent。
单击“确定”确认新的 SSH 配置设置。
在“数据源和驱动程序”对话框的“本地端口”字段中,指定要从中转发连接的本地端口号。否则,IntelliJ IDEA 会动态选择端口。
提示
有关使用 SSH 密钥的更多信息,请参阅生成新的 SSH 密钥并将其添加到 ssh-agent教程。
禁用与数据库的 SSH 连接
打开数据源属性。您可以使用以下选项之一打开数据源属性:
在 数据库工具窗口(视图|工具窗口| 数据库)中,单击数据源属性图标。
按。CtrlAltShift0S
选择要更改连接设置的数据源配置文件。
单击SSH/SSL选项卡并清除使用 SSH 隧道复选框。
单击“应用”。
手动创建 SSH 隧道
下载并运行最新版本的 PuTTY SSH 和 Telnet 客户端(从https://www.putty.org/下载客户端)。
在PuTTY 配置对话框中,导航到连接 | SSH | 授权。
在用于身份验证的私钥文件字段中,指定私钥文件的路径,然后单击打开。
在命令行窗口中,指定用于 SSH 隧道的用户名,然后按。不要关闭命令行窗口。Enter
在 数据库工具窗口(视图 | 工具窗口 | 数据库)中,单击工具栏上的数据源属性图标。
选择要更改连接设置的数据源配置文件。
单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。
从身份验证类型列表中,选择OpenSSH 配置和身份验证代理。
在代理主机、代理用户和端口字段中,指定连接详细信息。
要确保与数据源的连接成功,请单击“测试连接”。
Pageant 是 PuTTY、PSCP、PSFTP 和 Plink 的 SSH 身份验证代理。Pageant 存储您的私钥,只要它正在运行,它就会向 PuTTY 或 IntelliJ IDEA 等其他工具提供解锁的私钥。您可以在 Windows 任务栏中找到 Pageant 图标。
下载最新版本的Pageant(从https://www.putty.org/下载客户端)。
在 Windows 任务栏中,右键单击 Pageant 图标并选择添加键。
在“选择私钥文件”对话框中,导航到私钥文件(PPK 文件)并单击“打开”。
(可选)输入私钥密码并按。Enter
在 数据库工具窗口(视图 | 工具窗口 | 数据库)中,单击工具栏上的数据源属性图标。
选择要更改连接设置的数据源配置文件。
单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。
从身份验证类型列表中,选择OpenSSH 配置和身份验证代理。
在代理主机、代理用户和端口字段中,指定连接详细信息。
要确保与数据源的连接成功,请单击“测试连接”。
在命令行中运行 ssh-agent 的所有命令。
确保 ssh-agent 正在运行。
ssh-agent
将您的密钥添加到代理(在以下示例中,密钥路径为~
/.ssh )。/id_rsa ssh-add ~/.ssh/id_rsa
(可选)在 macOS 上,您可以
-K
向命令添加选项ssh-add
以将密码短语存储在钥匙串中。在 macOS Sierra 及更高版本上,您需要使用以下文本在~ /.ssh/中创建配置文件:Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
如果.ssh目录中有其他私钥,请
IdentityFile
为每个密钥添加一行。例如,如果第二个密钥的名称为id_ed25519,请添加IdentityFile ~/.ssh/id_ed25519
第二个私钥的附加行。列出所有添加的键。
ssh-add -L
在 数据库工具窗口(视图 | 工具窗口 | 数据库)中,单击工具栏上的数据源属性图标。
选择要更改连接设置的数据源配置文件。
单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。
从身份验证类型列表中,选择OpenSSH 配置和身份验证代理。
在代理主机、代理用户和端口字段中,指定连接详细信息。
要确保与数据源的连接成功,请单击“测试连接”。
第 5 步:如果您仍需要帮助,请写信给我们
写信给 IntelliJ IDEA 团队
给我们的团队发电子邮件:idea-support@jetbrains.com。描述您的问题,并附上所有可以加快故障排除速度的可用材料(代码示例、屏幕截图、日志、动画、视频和其他材料)。
有关其他故障排除来源的更多信息,请参阅支持和帮助。
感谢您的反馈意见!