首先吐槽一下,CSDN不能将很久之前写的富文本编辑器编辑的文章转换成Markdown格式。但是对于DataGrip的使用技巧,一直在积累;富文本真的太烂,没办法,只能另写一篇。DataGrip使用经验之谈写于2018年3月2日,现在看下来,有些过于随意。
另外,强烈建议阅读前,先看一下Java开发IDE神器IntelliJ IDEA 教程,因DataGrip和快捷键和使用习惯和IDEA如出一辙,极度相似。
连接SQL Server失败,默认使用的驱动是sqljdbc4:
结果报错信息如下:
[08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。
javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12].
参考DataGrip连接SQL Server,提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server建立安全连接的解决方法
结果使用Microsoft SQL Server(jTds)之后,报错信息如下:
[08S01] Network error IOException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]
javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12].
参考解决方法
新建文件custom.java.security
,内容如下:
jdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves
选中数据库,右键属性,点击高级,在VM options里面增加如下内容:
-Djava.security.properties=C:\Users\
然后重新点击Test Connection,如果不行,请清除DataGrip缓存重启:Invalidate Caches,然后Invalidate And Restart。
事实上,这个报错,对于其他数据源也是适用的。
参考IDEA的快捷键,下面列出一些功能不太一样的快捷键:
这里列出一些各界面按钮点点点操作:
->
Database ->
General中,将Ask what to execute换成Smallest statementnull
,如果该字段定义为not null
,not null
的列可以指定默认值如5
, 此时右键为set default
;Ctrl + Q
快捷键。一般是将当前选中行弹窗展示成列;选中多行时,还是需要左右滑动看多行数据;select *
查询所有列是不好的习惯,Alt+Enter快捷键,选择Expand column list,能快速展开列;相似的关联问题。DataGrip使用mysql-connector-java-8.0.20.jar
版本驱动,去连接一个Server版本为5.0.95的MySQL数据源,报错:
解决方法:不难知道或搜到通过降低驱动版本来连上这个数据源。
但是我需要查看很多不同版本的MySQL数据源的数据。查看Server版本为8.0+的MySQL数据源,又需要调整DataGrip使用的MySQL driver,升级使用的驱动版本。
也就是说,我需要来回切换驱动版本。
问题:DataGrip支持配置多个版本的MySQL驱动包吗?然后在切换数据源时,指定某个版本的驱动包?
附,使用的DataGrip版本:
DataGrip 2021.1.2
Build #DB-211.7442.38, built on May 31, 2021
Licensed to DataGrip Evaluator
Expiration date: December 14, 2022
其实很简单,都是因为惯性思维,一般而言,我们只需要新建DataSource,某个类型的全部DataSource,如MySQL,都使用一个MySQL驱动版本。
DataGrip作为一款超级强大的工具,用户体量自然很多,也许出自他们超级强大的产品设计能力,在推出产品时就考虑到这种场景也未可知。
步骤:新增时选择驱动和数据源:
弹窗如下,写个简单易懂的名称,配置好用户名密码和URL。如果之前有新增过User Driver,则可以选一个;如果没有,点击蓝色:
弹窗如下,写一个一目了然的名称,然后点击Driver Files下面的加号,从DataGrip自带Driver目录或本地目录选择一个,这里选择5.1.24版本:
点击上面截图里左侧边栏的⬅符号,回到数据源Data Source配置页
已经默认选好驱动,点击测试连接。成功!
事后反思:有点傻,惯性思维太过于严重导致。
选择需要导出数据的表,右键,Dump Data To File
即可以导出insert、update形式的SQL语句,也能导出为html、csv、json格式的数据,如果是导出到csv格式,还能控制导出的格式
也可以在查询结果视图中导出。
注意,导出时如果勾选左侧的两个header选项,导入时如果有header,也要勾选,不然会提示列个数不匹配。
在使用Intellij IDEA或者DataGrip连接SQL Server数据源报错。
解决方案:勾选Introspect using JDBC metadata