无法通过 DataGrip 应用程序连接到 MySQL docker 实例

Posted

技术标签:

【中文标题】无法通过 DataGrip 应用程序连接到 MySQL docker 实例【英文标题】:Cannot connect to MySQL docker instance via DataGrip application 【发布时间】:2017-10-10 09:16:26 【问题描述】:

我已成功通过 mysql 命令行实用程序连接到运行 MySQL 的 docker 实例。但是,我正在努力通过 JetBrains 的 DataGrip 应用程序来做到这一点。

我的mysql cli命令如下:

mysql -h127.0.0.1 --port=8181 -uroot

DataGrip 中生成的连接字符串为:

jdbc:mysql://127.0.0.1:8181

我从 DataGrip 界面得到的错误是:

[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.

DataGrip 中是否有任何我遗漏的地方需要更改。我读过连接也必须通过 TCP 完成。不确定如何检查 DataGrip 是否这样做。

更新:我最终发现问题出在我使用的 docker 容器上。似乎 DataGrip 无法连接到版本 8.0.1 (mysql:8.0.1) mysql docker 容器。我使用 5.7 版本的容器进行了测试,可以成功连接。

【问题讨论】:

请将连接窗口的屏幕截图发送到 maxim.sobolevskiy[at]jetbrains.com,我会为您提供帮助。 感谢 Jetbrains 团队。你试图帮我发送几封电子邮件。 不客气!感谢您的报告,莱昂! 【参考方案1】:

我在使用 DataGrip 连接 MySQL 8.0.3 时遇到问题。您需要从 Oracle website 下载 JDBC 驱动程序。选择 Developer Releases(因为这是一个不稳定的版本)。 8.0.8 版本对我有用。下载并保存在计算机上的项目文件夹或类似文件中。你以后会用到它的。

转到 DataGrip:文件 > 数据源。点击+并选择Driver: Screenshot of the Step above 在Driver Files > Additional files 部分点击+ 并选择您刚刚下载的jar 文件 之后在Class 下拉列表中选择com.mysql.jdbc.DriverDialect标记为MySQL 在 URL 模板部分,将 名称 设置为 default 并将 模板 设置为 jdbc:mysql://host::localhost?[:port::3306][/database?][\?<&,user=user,password=password,:identifier=:identifier>] 点击应用

完成!

Screenshot of MySQL 8.0.3 running on Datagrip

使用新驱动程序添加新数据源。

如果发现以下错误:

[01S00] The server time zone value 'PDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support

您可以转到Advanced 选项卡并为UTC 设置serverTimezone 变量作为示例进行临时修复。

【讨论】:

感谢您的详细帖子! 在 DataGrip 中使用 MySQL Connector/J 8.0.15,我必须使用 serverTimezone = America/Los_Angeles 而不是 PDT 才能使其工作。 use mysql; update user set plugin='mysql_native_password' where User='root'; flush privileges; 也解决了这个问题【参考方案2】:

不再有 *.jar 文件。在 Oracle 站点 https://dev.mysql.com/downloads/connector/j/5.1.html 上,我的操作系统只有 *.deb-packages

所以我在 docker 中为我的 MySQL 8.0.3 选择了驱动程序 Amazon Aurora MySQL。 有效!

【讨论】:

以上是关于无法通过 DataGrip 应用程序连接到 MySQL docker 实例的主要内容,如果未能解决你的问题,请参考以下文章

无法使用带有 securityMechanism=13 的 DataGrip 连接到 DB2

我无法使用 DataGrip 数据库客户端从本地主机连接到 docker 中的 mysql

如何通过 Jetbrains DataGrip 连接到远程 MS SQL Server 数据库?

如何使用 DataGrip 连接到 MAMP MySQL 服务器

将 Apache Cassandra 连接到 DataGrip

使用 DataGrip - Active Directory 连接到 Azure 数据库