易截截图软件、单文件、免安装、纯绿色、仅160KB

JDBC连接执行MySQL存储过程报空指针或权限错误

 最近使用root用户编写了几个存储过程,但是使用普通用户通过JDBC连接执行却报错:
java.lang.NullPointerException......

java.sql.SQLException: User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted, configure connection with "noAccessToProcedureBodies=true" to have driver generate parameters that represent INOUT strings irregardless of actual parameter types.
报哪个错要看你使用的Connector/J版本了。
这是因为JDBC调用存储过程时需要有show create procudure 权限或是有表mysql.proc的select权限。通过在JDBC连接属性中设置noAccessToProcedureBodies=true(默认false)解决或是授予普通用户相应的权限或者是按http://lists.mysql.com/commits/17817中的patch修改。
该noAccessToProcedureBodies=true的影响:
1. 调用存储过程时,将没有类型检查,设为字符串类型,并且所有的参数设为in类型,但是在调用registerOutParameter时,不抛出异常。
2. 存储过程的查询结果无法使用getXXX(String parameterName)的形式获取,只能通过getXXX(int parameterIndex)的方式获取。
参考:
http://bugs.mysql.com/bug.php?id=20235
http://bugs.mysql.com/bug.php?id=24065


相关文档:

Nagios:监控Mysql服务器

时间:2009-03-12 12:38:24  来源:Linux联盟
  作者:
 来源:it168.com
   
    作者:田逸(sery@163.com)
    俗话说:工欲善其事,必先利其器.要做好系统管理,使自己的工作更轻松更有效的话,一个好的监控工具是必不可少的了。在这里我向 ......

MySQL的timestamp类型自动更新问题

 注:本文讨论的范围为未启用MAXDB模式的表!
    今天建了一个表,里面有一个列是timestamp类型,我本意是在数据更新时,这个字段的时间能自动更新。岂知对这个类型的值还不甚了解,导致出错。发现这个字段只是在这行数据建立的时候有值,在更新的却无变化。
    查找资料,发现是我 ......

mysql 找回密码

 
1.  停到运行的mysql:    /etc/init.d/mysql stop
2.  使用skip-grant-tables这个选项启动MySQL:  /usr/bin/mysqld_safe --skip-grant-tables &
3.  现在可以不用密码进入mysql 了。
     #  myql
    >   ......

MySQL数据库备份和还原的常用命令

备份MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > backu ......

MySQL中文乱码问题解析

首先分析乱码的情况
1.写入数据库时作为乱码写入
2.查询结果以乱码返回
究竟在发生乱码时是哪一种情况呢?
我们先在mysql 命令行下输入
show variables like '%char%';
查看mysql 字符集设置情况:
mysql> show variables like '%char%';
+--------------------------+---------------------------------------- ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号