DB2未初始化命令行环境 怎么使用命令行运行db2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2未初始化命令行环境 怎么使用命令行运行db2相关的知识,希望对你有一定的参考价值。

参考技术A 根据你的截图,可以看出你装的是db2客户机,这样的话,你使用create database建库语句不可能会成功(你的错误提示:SQL2014N,数据库连接不存在),因为你没有连接服务器端,你本机也没有装db2服务器端。 解决方法: 安装db2服务器端,一般是企业级安装,安装后也就800M大小不到,一般pc机都行(默认浏览器为IE,要不会报错),安装完成后: a、windows点击运行,命令行输入db2cmd(初始化db2语言环境) b、进入实例用户,可以键入db2,进入db2命令行,然后create database建立数据库,建立好数据库后就可以操作数据库了 参考技术B 、首先检查你当前用户是否在该实例下面:db inst @p a-db:/home/db inst />db getinstanceThecurrentdatabasemanagerinstanceis:db inst 以上事例,反映我使用的用户当前是在db inst 实例下。 、检查你所要连接的数据库是否在该实例的编目下:db listdbdirectoryshowdetail返回:Database entry:Databasealias=SAMPLE_DBDatabasename=SAMPLE_DBLocaldatabasedirectory=/sampledbDatabasereleaselevel=c. Comment=Directoryentrytype=IndirectCatalogdatabasepartitionnumber= Alternateserverhostname=Alternateserverportnumber=如果列出的其中一个DB的别名(加粗的那项)有你所要连接的数据库名,那应该是能连接上的。如果发现已经没有了,请检查你原来那个数据库所在的路径,执行以下命令:db catalogdb数据库名on数据库所在的本地路径如果不清楚你数据库所在的路径,请自己在AIX上df-g看一下,一般数据库都放在一个文件系统上的。以上命令的路径最好在db 命令行中执行,否则请对于路径参数用单引号引住。希望能帮到你。 参考技术C 步骤如下:①执行安装:运行./db _install②创建用户ID:groupadddb grp groupadddb fgrp groupadddasadm useradd-gdb grp -m-d/home/db inst -p“”db inst useradd-gdb fgrp -m-d/home/db fenc -p““db fenc useradd-gdasadm -m-d/home/dasusr -p“”dasusr 注:以上三个用户密码均为空,用su命令切换到相应用户下时,用passwd命令设置即可③创建实例:首先我们使用以下命令创建管理服务器实例:/opt/IBM/db /V . /instance/dascrt-udasusr 接着使用以下命令创建数据库实例db inst :/opt/IBM/db /V . /instance/db icrt-udb fenc db inst 这个命令有一些可选的参数。特别地,-a选项允许我们指定一个不同于缺省的“SERVER”的认证机制。④创建共享库链接:/opt/IBM/db /V . /cfg/db ln⑤设置DB 实例环境变量:用su命令切换到db 实例所用者用户终端:sudb inst db setDB AUTOSTART=YES(设置db 自动随linux启动)db setDB COMM=tcpip(设置db 支持tcpip协议以便客户端访问)⑥设置服务端口输入db 命令,进入db 命令行模式updatedatabasemanagerconfigurationusingsvcenameserver | server | 两者选其一,server |为服务名, 为端口号getdatabasemanagerconfiguration⑦创建数据库createdatabasedbname⑧客户端的连接在命令行模式输入如下命令即可DB CATALOGTCPIPNODEmynodeREMOTEhostnameSERVER DB CATALOGDATABASEdbnameASdbnameATNODEmynode添加ODBC源即可测试连接

使用 DB2 驱动程序从 Flyway 命令行获取连接错误

【中文标题】使用 DB2 驱动程序从 Flyway 命令行获取连接错误【英文标题】:Getting connection error from Flyway command line with DB2 drivers 【发布时间】:2021-11-16 09:38:20 【问题描述】:

我们正在将数据库版本从 DB2 11.1.3 升级到 DB2 11.5.6。我们使用 Flyway 迁移代码已有 4 年了。我们使用的版本是 5.1.3,它运行良好,除了它抛出一个警告 DB2 11.5 is not supported。

我已经下载并尝试在我们的过程中使用 Flyway 7.13.0 和 7.15.0,但它们都抛出以下错误

ERROR: Unable to obtain connection from database (jdbc:db2://VAN-FCALLANDER:50000/TMLCLCUR:retrieveMessagesFromServerOnGetMessage=true;) for user 'TMWIN': [jcc][10214][10050][4.29.24] java.util.Properties object passed to java.sql.Driver.connect() cannot be overridden by URL: jdbc:db2://VAN-FCALLANDER:50000/TMLCLCUR:retrieveMessagesFromServerOnGetMessage=true;. ERRORCODE=-4461, SQLSTATE=42815
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SQL State  : 42815
Error Code : -4461
Message    : [jcc][10214][10050][4.29.24] java.util.Properties object passed to java.sql.Driver.connect() cannot be overridden by URL: jdbc:db2://VAN-FCALLANDER:50000/TMLCLCUR:retrieveMessagesFromServerOnGetMessage=true;. ERRORCODE=-4461, SQLSTATE=42815


Caused by: com.ibm.db2.jcc.am.SqlSyntaxErrorException: [jcc][10214][10050][4.29.24] java.util.Properties object passed to java.sql.Driver.connect() cannot be overridden by URL: jdbc:db2://VAN-FCALLANDER:50000/TMLCLCUR:retrieveMessagesFromServerOnGetMessage=true;. ERRORCODE=-4461, SQLSTATE=42815

根据IBM的说法,返回的错误来自Flyway设置参数的方式。 https://www.ibm.com/docs/en/db2/11.5?topic=errors-errorcode-4461 我尝试过使用 11.1 (type3) 驱动程序和 11.5 (type4) 驱动程序,两者都抛出相同的消息。

知道如何在不按照 IBM 建议的方式更新实际 Flyway 代码的情况下解决这个问题吗?

【问题讨论】:

请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:

看起来 Flyway 代码可能需要一些更改。

查看他们的issues 页面,如果那里不存在票证,请打开票证。

否则现在有可能的解决方法。

在您的特定情况下,附加到 URL 的属性会触发异常,因此您可以尝试:

(1)修改flyway.url去掉:retrieveMessagesFromServerOnGetMessage=true

(2) 更改 flyway 配置以通过 fltway.jdbcProperties(或等效方法)提供此属性,如果在您的 flyway 版本中启用:flyway.jdbcProperties.retrieveMessagesFromServerOnGetMessage=true。查看文档 https://flywaydb.org/documentation/configuration/parameters/jdbcProperties

(3) 通过 IBM db2dsdriver.cfg 从外部配置您需要的连接属性。有关详细信息,请参阅 IBM Db2 文档。想法是您可以将所有(或部分)数据源名称详细信息和参数放入 XML 文件 (db2dsdriver.cfg),然后 Db2 驱动程序将在运行时对其进行解析以执行您的指令。

(4) 从 URL 中删除该属性,并且在修复 flyway 代码之前没有详细的错误消息。

【讨论】:

问题现在在这里:github.com/flyway/flyway/issues/3285 - 非常感谢! 毛,谢谢你的建议。我已经实现了第 2 项 - 配置文件更新以包含一个 flyway.jdbcProperties 行,该行在运行我的补丁时效果很好;但是,该属性仅在 Teams 版本下可用,并且在我请求时不提供版本号。我希望朱莉娅为此提出的问题早日解决 更新 - 7.15 不会返回版本号,但 7.13 会。在 7.13 中测试了其他几个开关,似乎与配置属性一起正常工作 我在使用 DBeaver 连接到 DB2 数据库时遇到了类似的问题,遇到了同样的错误和错误代码。第 1 步和第 2 步有效地为我解决了这个问题。

以上是关于DB2未初始化命令行环境 怎么使用命令行运行db2的主要内容,如果未能解决你的问题,请参考以下文章

如何在Windows CMD里面用命令行操作DB2数据库

如何在Windows CMD里面用命令行操作DB2数据库

DB2数据库备份恢复小结

使用 DB2 驱动程序从 Flyway 命令行获取连接错误

DB2——命令窗口和命令行处理器

db2关闭命令行CLP自动提交