软件研究之DBeaver

标签: 无 分类: 未分类 创建时间:2020-05-20 04:57:58 更新时间:2024-11-23 10:24:26

我有台电脑使用的是Deepin系统,所以就需要一个linux版本的SQL SqlServer管理客户端。使用DBeaver就可以。

除了SqlServer之后,DBeaver还支持以下数据库:

问题:

1.导出sql语句时丢失了id列

这种情况,多半是因为id列在SQL Server列中是自动增长的,在导出数据是要选中导出自动增长列

2.Must specify port after ‘:’ in connection string

要正确编写ip地址,不用带http和端口

3.DBeaver连接mysql驱动下载失败问题

下载mysql的驱动总是失败,使用了代理也不行,添加了阿里云的maven仓库也不行。

没有办法,只能去maven仓库手动下载了jar包,然后放到了自定义路劲下。或者是放到默认的路径:/home/zhf/.local/share/DBeaverData/drivers/maven/maven-central/mysql 下,或者其他路径下,反正只要是能找到这个位置就好了,比如在windows上可以放到: C:\Program Files\DBeaver\plugins 路径下。

然后右键数据库编辑连接->编辑驱动,打开编辑驱动设置,选择库文件,将不需要的依赖进行删除。

然后再添加新的,自己下载的jar文件,就好了。

4.Utility ‘mysqldump.exe’ not found in client home ‘MySQL Binaries’ (D:\soft\DBeaver\MySQL Binaries)

使用Dbeaver进行数据备份的时候,就会出现问题,意思是没有找到相应的程序。只需要将MySQL免安装版下载下来,然后放到DBeaver的安装目录下MySQL Binaries就好了,我这里是(D:\soft\DBeaver\MySQL Binaries)

或者是通过DBeaver下载相关的mysqldump.exe。点击client->选择Native Client->浏览,DBeaver就会自动下载相关的程序,然后放到默认的路径下。下载完成之后,就可以继续进行备份了。

5.DB::Exception: Cannot modify ‘max_result_rows’ setting in readonly mode

选择 数据库->驱动管理->clickhouse->编辑->高级参数—> 去掉(Driver supports result set limit)与 (Driver supports structure cache) 选项的对勾。

6.Public Key Retrieval is not allowed

使用DBeaver连接MySQL8.0的时候,出现了这个问题。解决方法就是在新建连接时的驱动属性中,将驱动属性里->连接属性,设置 allowPublicKeyRetrieval 的值为 true,如果没有就右键新添加一个值。

7.还没有设置连接地址

使用Dbeaver右键数据库->工具,进行sql文件执行的时候,出现了 ”还没有设置连接地址“。

(1) 先找到mysqldump的路径

1
whereis mysqldump

(2) 客户端点击编辑连接

(3) 在连接设置,本地客户端设置中,添加数据库地址,选择第一步找到的 mysqldump 的上级目录

参考文章:
1.linux上dbeaver 还没有设置连接地址(解决方法) 这是linux的解决方案,截图这里找好了。
2.dbeaver 操作时提示:还没有设置连接地址 这是macos解决方案

8.执行sql脚本中文乱码

当我创建了一个数据库之后,使用工具->执行脚本的方式进行数据库导入,原先好好的,但是执行完了之后,中文就变成了乱码,我新建数据库的时候选择了UTF8编码,sql文件的编码格式也是UTF8,但是导入之后就变成了乱码。

真是奇怪了,更加奇怪的是,其他的数据库用同样的方式进行导入,竟然不会出现乱码。

【解决】
(1)可以新建数据库之后,新建sql编辑器,将脚本复制到编辑框中,然后选择执行脚本。

(2)如果使用普通的执行脚本的方式报错,那就右键编辑器,选择 执行脚本

(3)在脚本的开头,增加编码设置

1
SET NAMES 'utf8'; 
参考文章:
1.解决dbeaver 乱码问题
2.执行sql脚本时出现中文乱码
3.DBeaver打开sql脚本中文乱码
4.Dbeaver导入sql脚本方法(存储过程)及乱码解决方案
5.DBeaver导入脚本中文乱码 如果是普通执行SQL 模式会报错,需要执行脚本模式。
6.dbeaver导入sql脚本乱码 1.设置 DBeaver 的编码。2.在 SQL 脚本文件中添加字符集声明。3.将 SQL 脚本文件转换为 UTF-8 编码。4.重新生成 SQL 脚本文件。

9.Use Windows trust store

下载驱动的时候出现: “Network unavailable due to certificate issue.Try changing the setting Use Windows trust store in Preferences->Connections and restart DBeaver. It might help if you haven’t overridden trust store.”

【解决方案】
打开菜单栏->窗口->首选项->连接,将 “Use Windows trust store”,取消勾选,然后重启Dbeaver

10.postgresql链接显示不全

明明有数据库,但是就是显示不出来。

【解决方案】
(1)右键编辑链接
(2)选择 PostgreSQL,然后选中:“显示非缺省的数据库”、“显示模版数据库”、“显示无法连接的数据库”

11.Utility ‘mysqldump’ not found in client home ‘/usr/local/Cellar/mysql/8.0.26’ (/usr/local/Cellar/mysql/8.0.26)

【解决方案】
1.复制 mysql.exe and mysqldump.exe 到Dbeaver文件夹
2.或者在连接的时候,选择本地客户端。

12.Error downloading file ‘libcrypto-1_1-x64.dll’: PKIX path building failed:

【解决方案】
就是下载 libcrypto-1_1-x64.dll 程序,然后放到 C:\Windows\System32 文件夹下。

13.CreateProcess error=193, %1 不是有效的 Win32 应用程序

执行数据库脚本的时候弹出这个错误,显示乱码:“CreateProcess error=193, %1 涓嶆槸鏈夋晥鐨� Win32 搴旂敤绋嬪簭銆� ”

【解决方案】
重新给DBeaver指定有效的mysql安装的bin目录下mysql.exe即可:

(1)选中当前的mysql连接,右键:

(2)编辑连接 - 主要 - 本地客户端 - 浏览 - 添加数据库地址

(3)在这里选择自己安装的有效mysql的bin目录即可。

14.设置界面为英文

执行sql脚本的时候,总是出现中文乱码,最后我干脆就直接重新安装了,安装成了英文。

15.数据库显示不全

(1)右键连接,编辑连接。 在「连接设置」「PostgreSQL」里面,勾选上「显示非缺省的数据库」就可以了。我这里的版本是显示所有数据库。

(2)重新连接就可以看到所有数据库。

参考文章:
1.DBeaver显示系统数据库不全 右击连接名,点击Connection view,选中显示系统对象
2.解决 DBeaver 只显示默认的一个数据库 postgres

17.Unknown command ‘\n’.

我在新建数据库中,导入 jeecg boot 的数据时,总是遇到问题,在 macos 上就不会遇到问题:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’loaded(){\n this.$nextTick(()=>{\n let text = '测试js增强设置默认å’ at line 1

这个真是令我很恼火。

【解决方案】
就是在执行导入或者是执行脚本的时候,增加额外的命令行参数 –default-character-set=utf8

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。