设为首页 收藏本站
查看: 1226|回复: 0

[经验分享] db2数据库安装及测试问题记录

[复制链接]

尚未签到

发表于 2016-11-16 00:07:09 | 显示全部楼层 |阅读模式
  由于平台测试需要,这两天在windows xp下搭建了db2(db2_9.1.3版本)服务器的环境,通过jdbc方式进行测试。出现了一些问题。
  原始代码如下:

Connection conn = null;
PreparedStatement prepStamt = null;
ResultSet rs = null;
try {
Class.forName("com.ibm.db2.jdbc.net.DB2Driver");
conn = DriverManager.getConnection(
"jdbc:db2://172.16.3.189:50000/CBIFDB", "db2admin",
"db2admin");
prepStamt = conn.prepareStatement("select * from tanzs.testtable");
rs = prepStamt.executeQuery();
int i = 0;
while (rs.next()) {
System.out.println("record[" + (++i) + "]:");
System.out.println("acctNo:" + rs.getObject("acctNo")
+ "acctName:" + rs.getObject("acctName"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
if (prepStamt != null) {
prepStamt.close();
}
if (conn != null) {
conn.close();
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
  1.问题:java.lang.ClassNotFoundException: com.ibm.db2.jdbc.net.DB2Driver
  分析:引用的jar包有db2java.jar,db2jcc.jar,db2jcc_license_cisuz.jar,db2jcc_license_cu.jar
  网上找到的驱动名称是:com.ibm.db2.jdbc.net.DB2Driver,
  其他项目上的驱动名称是:com.ibm.db2.jcc.DB2Driver
  解决:改用jcc的驱动名称就能正常建立连接。
  note:网上资料显示,有4种与db2服务器建立连接的方式,具体区别可参考以下信息:http://www.sudu.cn/info/html/edu/20070101/283555.html。
  备注:建立连接的url格式如下:jdbc:db2://ip:port/dbname,其中ip为db2服务器ip地址,port为连接端口号,一般默认50000,dbname为要操作的数据库名称。
  2.问题:com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704, SQLERRMC: ETPDEMO.TESTTABLE
  分析:表操作权限不足。参考http://www.yihaomen.com/article/java/86.html的问题分析,再仔细检查发现:
  默认是以系统管理员用户登录,所以创建的表也隶属于系统管理员。而程序中建立连接的用户名,密码是其他用户,非系统管理员用户,所以该用户无操作该表的权限。
  解决:两种解决方式,
  1)在要操作的表前加上所属表模式,
  eg:prepStamt = conn.prepareStatement("select * from Administrator.testtable");
  2)修改用户名密码为该表隶属的用户:
  eg:conn = DriverManager.getConnection("jdbc:db2://172.16.3.189:50000/CBIFDB", "Administrator", "Administrator");
  备注:每个数据库都只给当前登录用户分配管理员权限,所以如果新增了用户,或其他已有用户也要操作该数据库,需要先添加相关用户,分配相应权限。
  新建用户:在db2的控制中心,右键点击某一数据库,选择"权限"功能,在弹出的对话框中即可新建用户,并分配相应权限。
  note:db2的用户与操作系统的用户一一对应,密码即为操作系统用户的密码。
  可在操作系统中新建一用户,再在db2的控制中心添加用户,并为其分配相应权限。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-300716-1-1.html 上篇帖子: db2中取表的前几条记录 下篇帖子: Myeclipse配置DB2数据源Cheek your URL问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表