PhpStorm 2021.3 Help

无法连接到数据库

步骤 1. 检查您的网络设置

数据库可以在本地、服务器或云中工作。对于服务器和云数据库,您需要网络连接。要验证连接是否可用,请使用pingtelnet命令。

使用ping命令,您可以确保可以从源计算机访问目标计算机。打开命令行并键入以下命令:ping -a <host_IP>,其中-a是将地址解析为主机名的命令选项(如果可能)。如果您在ping命令中使用主机名,则主机名将解析为 IP 地址。例如,ping -a example.com解析为PING example.com (93.184.216.34).

ping -a <主机IP>
使用 ping 命令测试连接

使用telnet命令,您可以测试与远程计算机的连接并发出命令。如果将端口指定为telnet命令的参数,则可以在给定端口上测试与远程主机的连接。如果连接成功,您会看到以下消息:Connected to <host_IP>

telnet <host_IP> <port_number>
使用 telnet 命令测试连接

步骤 2. 检查您的连接属性

每个数据库(MySQL、PostgreSQL、Oracle 或任何其他供应商)都有自己的连接设置。大多数数据库包括连接设置:

  • 主机:存储数据库的计算机或其他设备的主机名。它可以是 IP 地址127.0.0.1或域名localhost

  • 数据库:要连接的数据库的名称。您可以在数据库服务器的设置中找到数据库名称,也可以询问数据库管理员。在某些情况下,可以在数据库命令行中运行查询以查看所有可用数据库的名称。例如,在 MySQL 中,您可以运行SHOW DATABASES;.

    SHOW DATABASES 查询
  • 用户:具有足够权限对数据库执行操作的用户的名称。在数据库命令行中运行查询以查看所有可用数据库的名称。例如,在 MySQL 中,您可以运行SHOW GRANTS;.

    SHOW GRANTS 查询
  • 密码:用户的密码。

  • 端口:标识主机之间连接点的数字。主机使用端口号来确定必须与哪个应用程序、服务或进程建立连接。不同的数据库供应商为其数据库使用不同的端口。以下列表是默认端口号列表。

    小贩

    默认端口

    亚马逊红移

    5439

    阿帕奇德比

    1527

    阿帕奇卡桑德拉

    9042

    阿帕奇蜂巢

    10000 (Hive Server2) 或 9083 (Hive Metastore)

    Azure SQL 数据库

    1433

    点击屋

    8123

    Couchbase 查询查询服务

    11210

    Exasol

    8563

    青梅

    5432

    H2

    8082

    数据库

    9001

    IBM Db2 LUW

    50000

    玛丽亚数据库

    3306

    微软 SQL 服务器

    1433 (TCP)、1434(可能需要 UDP)

    MySQL

    3306

    甲骨文

    1521

    PostgreSQL

    5432

    雪花

    443

    SQLite

    没有

    Sybase ASE

    5000

    垂直

    5433

验证所选数据库连接的连接设置是否正确。有关创建或更改数据库连接的更多信息,请参阅数据库连接

步骤 3. 检查驱动程序版本

使用 JDBC 驱动程序,您可以与来自 PhpStorm 的数据库管理系统 (DBMS) 进行交互。每个 DBMS 都需要自己的 JDBC 驱动程序。确保驱动程序版本和 DBMS 版本相互兼容。

您可以从 PhpStorm 下载所有支持的供应商的驱动程序。您可以在驱动程序列表中查看支持的供应商的完整列表。或者,您可以将自己的驱动程序添加到现有供应商,或为不在驱动程序列表中的供应商创建新的驱动程序条目。

要打开驱动程序列表,在数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标或按Shift+Enter

下载驱动并选择驱动版本

要从 JetBrains FTP 服务器下载驱动程序,请从驱动程序列表中选择供应商,然后单击下载版本。驱动程序文件窗格中的<version_number>链接。

要更改驱动程序版本,请单击版本驱动程序文件窗格中的<version_number>链接,然后选择您需要的驱动程序版本。

驱动程序列表和驱动程序设置

    使用用户驱动程序文件

    1. 数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标

    2. 在“数据源和驱动程序”对话框中,确保您位于“驱动程序”选项卡上。

    3. 在“数据源和驱动程序”对话框中,单击“添加”图标 ( 添加图标)。

    4. 名称字段中,键入驱动程序的名称。

    5. Driver Files窗格中,单击Add图标 ( 添加图标) 并选择Custom JARs

    6. 导航到 JDBC 驱动程序的 JAR 文件,选择它,然后单击OK

    7. Class字段中,指定要用于驱动程序的值。

    8. 单击应用

    9. 要从驱动程序对话框创建数据源,请单击创建数据源

      使用用户驱动程序连接到数据库

    从现有连接配置 JDBC 驱动程序

    您可以将库添加到现有驱动程序或完全替换驱动程序。

    1. 数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标

    2. 在“数据源和驱动程序”对话框中,单击“驱动程序”选项卡,然后选择要更改驱动程序的数据源。

    3. 单击数据源设置中的驱动程序链接。

    4. 单击提供的驱动程序条目,然后单击删除( 删除按钮)。

      要恢复更改,请单击窗口右下角的回滚更改图标 ( 回滚更改图标)。

    5. Driver files窗格中,单击Add图标 ( 添加图标) 并选择Custom JARs

    6. 在文件浏览器中,导航到 JDBC 驱动程序的 JAR 文件,选择它,然后单击OK

    7. Class字段中,指定要用于驱动程序的值。

    8. 单击应用

      将用户驱动程序添加到现有连接

    步骤 4. 检查是否需要使用 SSH 或 SSL 连接

    为了使与数据库的连接更加安全,某些服务需要使用 SSH 或 SSL。

    SSL

    以下过程描述了适合大多数数据库的 SSL 配置。对于某些数据库,您需要使用另一种方法来成功连接。您可以在 DataGrip 文档中查看CassandraHeroku Postgres的配置示例。

    使用 SSL 连接到数据库

    1. 数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标

    2. 在“数据源”选项卡上,选择要修改的数据源。

    3. 单击SSH/SSL选项卡并选择使用 SSL复选框。

    4. CA 文件字段中,导航到 CA 证书文件(例如mssql.pem)。

    5. 客户端证书文件字段中,导航到客户端证书文件(例如client-cert.pem)。

    6. 客户端密钥文件字段中,导航到客户端密钥文件(例如client-key.pem)。

    7. 模式列表中,选择验证模式:

      • Require:验证服务器是否接受此 IP 地址的 SSL 连接并识别客户端证书。

      • 验证 CA:通过检查证书链直到存储在客户端上的根证书来验证服务器。

      • 完整验证:验证服务器主机以确保它与存储在服务器证书中的名称匹配。如果无法验证服务器证书,则 SSL 连接失败。

    8. 要确保与数据源的连接成功,请单击测试连接

      使用 SSL 连接到数据库

    禁用与数据库的 SSL 连接

    1. 数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标

    2. 在“数据源”选项卡上,选择要修改的数据源。

    3. 单击SSH/SSL选项卡并清除使用 SSL复选框。

    4. 单击应用

    从其他数据源复制 SSL 设置

    如果您为一个数据源配置了 SSL 设置,则可以将它们复制到另一个数据源。

    1. 数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标

    2. 在“数据源”选项卡上,选择要修改的数据源。

    3. 单击SSH/SSL选项卡并选择使用 SSL复选框。

    4. 单击Copy from链接并选择要复制的配置。

    SSH

    Secure Shell 或 SSH 是一种网络协议,用于加密客户端和服务器之间的连接。

    所有创建的 SSH 连接都在项目中的所有数据源之间共享。如果您不想在项目之间共享连接,请在 SSH 连接设置中选中仅对该项目可见复选框。

    使用 SSH 连接到数据库

    1. 数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标

    2. 选择要更改连接设置的数据源配置文件。

    3. 单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。

    4. 单击添加 SSH 配置按钮 ( 添加 SSH 配置)。

    5. SSH对话框中,单击添加按钮。

    6. 如果您不想在项目之间共享配置,请选中仅对该项目可见复选框。

    7. HostUser namePort字段中,指定您的连接详细信息。

    8. 身份验证类型列表中,您可以选择身份验证方法:

      • 密码:使用密码访问主机。要在 PhpStorm 中保存密码,请选中保存密码复选框。

      • 密钥对(OpenSSH 或 PuTTY):通过密钥对使用SSH 身份验证。要应用此身份验证方法,您必须在客户端计算机上拥有私钥,在远程服务器上拥有公钥。PhpStorm 支持使用OpenSSH实用程序生成的私钥。

        指定存储您的私钥的文件的路径,并在相应的字段中输入密码(如果有)。要让 PhpStorm 记住密码,请选中保存密码复选框。

      • OpenSSH 配置和身份验证代理:使用由凭据帮助应用程序管理的 SSH 密钥(例如,Windows 上的Pageant或macOS 和 Linux 上的 ssh-agent )。

      数据源的 SSH 和 SSL 设置

    禁用与数据库的 SSH 连接

    1. 数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标

    2. 选择要更改连接设置的数据源配置文件。

    3. 单击SSH/SSL选项卡并清除使用 SSH 隧道复选框。

    4. 单击应用

    使用 PuTTY 创建 SSH 隧道 (Windows)

    1. 下载并运行最新版本的 PuTTY SSH 和 Telnet 客户端(从https://www.putty.org/下载客户端)。

    2. PuTTY 配置对话框中,导航到连接 | SSH | 授权

    3. 用于身份验证的私钥文件字段中,指定您的私钥文件的路径,然后单击打开

    4. 在命令行窗口中,指定用于 SSH 隧道的用户名,然后按Enter。不要关闭命令行窗口。

    5. 数据库工具窗口(视图|工具窗口|数据库)中,单击工具栏上的数据源属性图标数据源属性图标

    6. 选择要更改连接设置的数据源配置文件。

    7. 单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。

    8. Auth type列表中,选择OpenSSH config and authentication agent

    9. Proxy hostProxy userPort字段中,指定连接详细信息。

    10. 要确保与数据源的连接成功,请单击测试连接

    使用 PuTTY 创建 SSH 隧道 (Windows)

    使用 Pageant 创建 SSH 隧道 (Windows)

    Pageant 是 PuTTY、PSCP、PSFTP 和 Plink 的 SSH 身份验证代理。Pageant 会存储你的私钥,只要它在运行,它就会将解锁的私钥提供给 PuTTY 或 PhpStorm 等其他工具。您可以在 Windows 任务栏中找到选美图标。

    1. 下载最新版本的 Pageant(从https://www.putty.org/下载客户端)。

    2. 在 Windows 任务栏中,右键单击 Pageant 图标并选择Add Key

    3. Select Private Key File对话框中,导航到私钥文件(PPK 文件)并单击Open

    4. (可选)输入私钥密码并按Enter

    5. 数据库工具窗口(视图|工具窗口|数据库)中,单击工具栏上的数据源属性图标数据源属性图标

    6. 选择要更改连接设置的数据源配置文件。

    7. 单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。

    8. Auth type列表中,选择OpenSSH config and authentication agent

    9. Proxy hostProxy userPort字段中,指定连接详细信息。

    10. 要确保与数据源的连接成功,请单击测试连接

    使用 Pageant 创建 SSH 隧道 (Windows)

    使用 ssh-agent 创建 SSH 隧道(macOS 和 Linux)

    在命令行中运行 ssh-agent 的所有命令。

    1. 确保 ssh-agent 正在运行。

      ssh 代理
    2. 将您的密钥添加到代理(在以下示例中,密钥路径为~/.ssh/id_rsa)。

      ssh-add ~/.ssh/id_rsa
    3. (可选)在 macOS 上,您可以向命令添加-K选项以ssh-add将密码短语存储在您的钥匙串中。在 macOS Sierra 及更高版本上,您需要使用以下文本在~/.ssh/中创建配置文件:

      主机 * UseKeychain 是 AddKeysToAgent 是 IdentityFile ~/.ssh/id_rsa

      如果您在.ssh目录中有其他私钥,请为每个密钥添加IdentityFile一行。例如,如果第二个密钥的名称为id_ed25519,则添加IdentityFile ~/.ssh/id_ed25519为第二个私钥的附加行。

    4. 列出所有添加的键。

      ssh-添加 -L
    5. 数据库工具窗口(视图|工具窗口|数据库)中,单击工具栏上的数据源属性图标数据源属性图标

    6. 选择要更改连接设置的数据源配置文件。

    7. 单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。

    8. Auth type列表中,选择OpenSSH config and authentication agent

    9. Proxy hostProxy userPort字段中,指定连接详细信息。

    10. 要确保与数据源的连接成功,请单击测试连接

    使用 ssh-agent 创建 SSH 隧道(macOS 和 Linux)

    第 5 步。如果您仍需要帮助,请写信给我们

    写信给 PhpStorm 团队

    • 通过phpstorm-support@jetbrains.com向我们的团队发送电子邮件。描述您的问题,并附上所有可以加快故障排除的可用材料(代码示例、屏幕截图、日志、动画、视频和其他材料)。

    有关其他故障排除来源的更多信息,请参阅入门

    最后修改时间:2021 年 11 月 22 日