JDBC/Exec StoredProcedure von unterschiedlichen Clients
am 19.09.2006 16:11:17 von Carsten BroschekHallo!
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