Linux环境下达梦数据库的安装和使用 2021-06-30

Linux环境下达梦数据库的安装和使用

因为windows的数据库缺少参数,或者说不能实现使用外部函数的功能,所以将数据库环境更换成了Linux。
系统为CentOS7.6,腾讯云的一个服务器。

Java安装残留问题

Java 环境变量配置 结果有几个command not found 但是不影响Java使用?
软连接设置,第一次设置错误,第二次提示文件已存在,可能有影响?

 

经验证,以上二者不是问题。

 

数据库初始化

数据库在服务器的安装队友搞定了。
这里进行数据库的初始化,理论上,只需要运行/bin/dminit即可。
实际上当然出了一堆问题,包括但不限于没有权限,数据库服务无法启动,注册服务脚本失败之类的。
但是用万能的重装解决了。
目前建立了数据库,数据库的参数中只指定了数据库保存的路径,其余信息应当和默认一致,或者可以查看dm.ini。

 

数据库连接

使用自带的连接工具DIsql,直接运行即可。

之后用简单的SQL语句建立了一个测试表,如下:

create table student_score (
    id int primary key identity,
    name varchar(20) not null,
    score varchar(100) not null
)

insert into student_score (name, score) values ('李四', 60)

执行后队友发现看不到结果,想到需要提交,查询得到提交命令是commit。
执行之后队友就能看见了。

 

外部函数

修改dm.ini ENABLE_EXTERNAL_CALL = 1
重启DMService服务
修改agent.ini,ap_enable = true ap_port = EXTERNAL_JFUN_PORT
启动dmagent服务
导入jar包

遇到的问题

导出的Java包一定要有包名
原因大概是因为,如果不指定包,Java会自动分配一个default包,这个包不是不存在而是隐藏了,它还是有包名的,所以应当自己指定一个。

insert into student_score (name, score) values (‘王五’, test(‘0’));
这段语句,是从一次不能正常执行的记录上复制下来的,一个字没动,又输进去,就能运行了。

[ln@VM-4-14-centos bin]$ ./disql
disql V8
username:SYSDBA
password:

Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 2.387(ms)
SQL> select test('123');

LINEID     TEST('123')
---------- ---------------
1          已加密:123

used time: 2.729(ms). Execute id is 404.
SQL> insert into student_score (name, score) values ('王五',
2   select test('0'));
insert into student_score (name, score) values ('王五',
select test('0'));

select test('0'));
      *
line 2, column 7, nearby [select] has error[-2007]:
Syntax error.
used time: 0.206(ms). Execute id is 0.
SQL> select test('0');

LINEID     TEST('0')
---------- -------------
1          已加密:0

used time: 0.998(ms). Execute id is 405.
SQL> insert into student_score (name, score) values ('王五', test('0'));
2   /
3   ;
4   '
5   ;
insert into student_score (name, score) val王五', test('0'));
/
;
'
;

insert into student_score (name, score) val王五', test('0'));
                                                              *
line 1, column 79, nearby [val王五] has error[-2007]:
Syntax error.
used time: 0.169(ms). Execute id is 0.
SQL> insert into student_score (name, score) values ('王五', test('0'));
affect rows 1

used time: 0.899(ms). Execute id is 406.
SQL> select * from student_score
2   ;

LINEID     ID          NAME   SCORE
---------- ----------- ------ -------------
1          3           张三 100
2          4           李四 60
3          5           王五 已加密:0

used time: 0.257(ms). Execute id is 407.
SQL> exit
[ln@VM-4-14-centos bin]$ ./disql
disql V8
username:SYSDBA
password:

Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 2.359(ms)

看起来是服务器的延迟问题,字打太快了,有些字符被吞了?
解决方式是把putty换成了Xshell,希望能解决问题吧,大概。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值