我已成功通过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版测试并且可以成功连接。
答案 0 :(得分:6)
我在使用DataGrip连接MySQL 8.0.3时遇到了问题。您需要从Oracle website下载JDBC驱动程序。选择Developer Releases(因为这是一个不稳定的版本)。 8.0.8版本适合我。下载并保存在计算机上的项目文件夹或类似文件夹中。你以后会需要的。
+
,然后选择Driver
:Driver Files
>部分; Additional files
点击+
,然后选择刚下载的jar
文件Class
下拉列表中选择com.mysql.jdbc.Driver
Dialect
标记为MySQL
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
标签进行临时修复,并为serverTimezone
设置UTC
变量作为示例。