Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
tangzhongshan opened this issue Oct 26, 2022 · 20 comments
Closed

Comments

@tangzhongshan
Copy link

tangzhongshan commented Oct 26, 2022

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

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

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

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

@codefollower
Copy link
Member

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

@tangzhongshan
Copy link
Author

tangzhongshan commented Oct 26, 2022

image

能否发一下你这里的配置

@codefollower
Copy link
Member

codefollower commented Oct 26, 2022

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

image

@codefollower
Copy link
Member

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

@tangzhongshan
Copy link
Author

tangzhongshan commented Oct 26, 2022

image

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

@tangzhongshan
Copy link
Author

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

@tangzhongshan
Copy link
Author

tangzhongshan commented Oct 26, 2022

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

@codefollower
Copy link
Member

当你第一次使用 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。

@tangzhongshan
Copy link
Author

好的,谢谢,感谢答疑

@codefollower
Copy link
Member

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

@cbqqkcel
Copy link

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

@codefollower
Copy link
Member

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

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

@cbqqkcel
Copy link

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

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

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

@cbqqkcel
Copy link

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

@codefollower
Copy link
Member

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

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

@cbqqkcel
Copy link

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

@cbqqkcel
Copy link

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

@codefollower
Copy link
Member

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

@cbqqkcel
Copy link

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

@codefollower
Copy link
Member

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants