JDBC/Exec StoredProcedure von unterschiedlichen Clients

JDBC/Exec StoredProcedure von unterschiedlichen Clients

am 19.09.2006 16:11:17 von Carsten Broschek

Hallo!

Ich verstehe es nicht:

Ich habe einen zentralen Datenbankserver mit Mysql-5 und dort
Servlet-Applikation mit JDBC-Zugriff auf die DB. Ich kann
StoredProcedures nur zugreifen, wenn ich diese direkt über mysql-client
auf dem DB-Server anlege.
Sobald ich die Prozeduren von meinem Entwicklungsrechner anlege kann
die Applikation auf dem DB-Server diese nicht mehr ausführen, umgekehrt
genau das gleiche Verhalten. Die Grants sind m.M. nach identisch:

+----------------------------------------------------------- -----------------------------------------------+
| Grants for testuser@%
|
+----------------------------------------------------------- -----------------------------------------------+
| GRANT USAGE ON *.* TO 'testuser'@'%' IDENTIFIED BY PASSWORD
'*418ED78FCE745C8A4CB2174AD939ED03392B5A68' |
| GRANT ALL PRIVILEGES ON `testuser`.* TO 'testuser'@'%'
|
-> Der Benutzer, wenn ich von meinem Entwicklungsrechner komme

+----------------------------------------------------------- -------------------------------------------------------+

| Grants for testuser@localhost
|
+----------------------------------------------------------- -------------------------------------------------------+
| GRANT USAGE ON *.* TO 'testuser'@'localhost' IDENTIFIED BY PASSWORD
'*418ED78FCE745C8A4CB2174AD939ED03392B5A68' |
| GRANT ALL PRIVILEGES ON `testuser`.* TO 'testuser'@'localhost'
-> Der Benutzer beim lokalen
Zugriff auf dem DB-Server

Auswertung der SP, je nach Anlage:
Status wenn direkt auf DB-Server angelegte SP:

testuser | SP_TEST | PROCEDURE | testuser@localhost |
2006-09-19 15:41:49 | 2006-09-19 15:41:49 | DEFINER |

Status wenn von Develop-Client angelegte SP:
testuser | SP_TEST | PROCEDURE | testuser@% | 2006-09-19
15:41:49 | 2006-09-19 15:41:49 | DEFINER |


Fehlermeldung sobald Applikation zugreift und SP nicht auf dem gleichen
Rechner installiert wurde:

java.sql.SQLException: Driver requires declaration of procedure to
either contain a '\nbegin' or '\n' to follow argument declaration, or
SELECT privilege on mysql.proc to parse column types.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910 )

Über Mysql-Client kann ich via call von beiden Rechnern aus die SP
sauber ausführen :-(.

Debian-Linux, Mysql 5.0.24a-standard, mysql-connector-java-5.0.3

Dankbar für Hinweise,

CARSTEN