Lealone icon indicating copy to clipboard operation
Lealone copied to clipboard

DBeaver为什么只能连lealone数据库,不能连接其他数据库

Open tangzhongshan opened this issue 2 years ago • 20 comments

具体截图请见地址如下 image image image

DBeaver为什么只能连lealone数据库,不能连接其他数据库

jdbc:lealone:tcp://192.168.5.180:9210/lealone

就是这个JDBC后面的lealone不能替换其他建的数据库,替换一下,DBeaver就不能连接了,老是报用户名和密码错误

tangzhongshan avatar Oct 26 '22 02:10 tangzhongshan

DBeaver 可以连多个数据库的,你的图片看不到,截图后直接拖到 github 的输入框就能显示了。 TUW%N@GKD(` 9GI%862)MW4

codefollower avatar Oct 26 '22 04:10 codefollower

image

能否发一下你这里的配置

tangzhongshan avatar Oct 26 '22 04:10 tangzhongshan

image

能否发一下你这里的配置

tangzhongshan avatar Oct 26 '22 04:10 tangzhongshan

jdbc:lealone:tcp://{host}[:{port}]/[{database}]

image

codefollower avatar Oct 26 '22 04:10 codefollower

你截图里的默认端口写成 root 了

codefollower avatar Oct 26 '22 04:10 codefollower

image

知道原因了,你这lealone和tzs数据库的用户都是各是各,密码并不是统一的吗

tangzhongshan avatar Oct 26 '22 04:10 tangzhongshan

lealone数据的root密码已经修改了,然后我tzs数据库一直用的修改后的密码连接,连接不了,密码不填写反而能连接

tangzhongshan avatar Oct 26 '22 04:10 tangzhongshan

建议你还是设置一下复杂密码,然后分数据库测试一下,可能你本地的密码都是为空,所以没有体现出来 image image

tangzhongshan avatar Oct 26 '22 04:10 tangzhongshan

当你第一次使用 lealone 时,只能连 lealone 数据库,这个数据库的用户是 root,密码是空, 然后你必须用这个 root 用户连上去才能创建新的数据库,比如 create database test 就创建了一个叫 test 的数据库。

用 create database 创建的数据库都有自己的一套用户,最开始也只有用户 root,密码是空, 然后你用 root 连上 test,执行 ALTER USER root SET password 'zhh' 就能修改 root 的密码了, 重连时像截图这样设置新密码就好了: image

用 create database 创建的数据库都相当于一个 mysql 实例,这个一定要搞清楚,不能拿 mysql 的习惯来套, lealone 的 database 和 schema 是不同的。

use xxx 时,xxx 是 schema 不是 database。

codefollower avatar Oct 26 '22 05:10 codefollower

好的,谢谢,感谢答疑

tangzhongshan avatar Oct 26 '22 05:10 tangzhongshan

当你连到 test 数据库时,用 CREATE USER zhh password 'zhh' 创建新用户,然后换成 zhh 去连也是没有问题的 image

codefollower avatar Oct 26 '22 05:10 codefollower

DBeaver 不能直接修改数据库字段吧。要用 sql 修改才行

cbqqkcel avatar Oct 26 '22 06:10 cbqqkcel

DBeaver 不能直接修改数据库字段吧。要用 sql 修改才行

DBeaver 可以直接增删修改 lealone 的表结构,我刚试了,没有问题。

codefollower avatar Oct 26 '22 06:10 codefollower

DBeaver 不能直接修改数据库字段吧。要用 sql 修改才行

DBeaver 可以直接增删修改 lealone 的表结构,我刚试了,没有问题。

codefollower avatar Oct 26 '22 06:10 codefollower

DBeaver 不能直接修改数据库字段吧。要用 sql 修改才行

DBeaver 可以直接增删修改 lealone 的表结构,我刚试了,没有问题。

回头我升级DBeaver试一下。那应该是 datagrip 不行。因为配置了用自定义驱动链接数据库。默认修改表的 sql 语法不是 h2 的。 不知道怎么把datagrip sql 语法指定为 h2的。

cbqqkcel avatar Oct 26 '22 06:10 cbqqkcel

datagrip 修改字段时下面的语法不是h2的 image

cbqqkcel avatar Oct 26 '22 06:10 cbqqkcel

DBeaver 我刚刚试错了,是在没有保存的新列上修改,如果已经保存了现有的列就没看到修改的界面或菜单了

列改名用这样的语法 ALTER TABLE t ALTER a RENAME TO a1;

codefollower avatar Oct 26 '22 06:10 codefollower

是的,我刚试了一下, DBeaver也不能修改。 还是挺麻烦的,要用 sql 改还的查 h2 的文档

cbqqkcel avatar Oct 26 '22 06:10 cbqqkcel

这些工具应该会默认选择一套 sql 语法去操作,不知道怎么修改他的默认行为

cbqqkcel avatar Oct 26 '22 07:10 cbqqkcel

alter 语句很多数据库的用法都有差别,通用 JDBC 客户端不好做,除非厂商对具体数据库做不同处理。

codefollower avatar Oct 26 '22 07:10 codefollower

https://www.jetbrains.com/datagrip/new_dbms/ 这个链接是提供一些文档给他们,让他们自己支持。 可以试一下。

cbqqkcel avatar Oct 26 '22 08:10 cbqqkcel

@qqcbqqkcel 5.0.1-SNAPSHOT 刚刚已经支持语法 ALTER TABLE tableName RENAME COLUMN oldName TO newName

h2 新一点的版本也支持的,这是 postgresql 的语法。

codefollower avatar Oct 26 '22 08:10 codefollower