Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenbankzugriff mit JDBC mit MySQL 5.0.15-max
Hallo,
ich habe folgendes Problem:
Der MySQL 5.0-Max-Server funktioniert reibungslos und MySQL ist auch als Service eingerichtet. Den MySQL-Connector/J habe folgendermaßen in der .bashrc eingetragen:
export CLASSPATH=$CLASSPATH://home/heuberger284/mysql-connector-java-3.1.11-bin.jar
Und wenn ich ein Java-Programm starte, kommt folgendes, wobei beim Kompilieren keine Fehler kommen:
java.sql.SQLException: Access denied for user ''@'localhost' to database 'mitarbeiter'
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:2926)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:771)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java: 3647)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:11 76)
at com.mysql.jdbc.Connection.createNewIO(Connection.j ava:2544)
at com.mysql.jdbc.Connection.<init>(Connection.java:1474)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonReg isteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager .java:512)
at java.sql.DriverManager.getConnection(DriverManager .java:193)
at DB1.main(DB1.java:20)
Exception in thread "main" java.lang.NullPointerException
at DB1.main(DB1.java:31)
Kann mir jemand sagen, was ich machen muß, dass ich Daten reibungslos aus der MySQL-Datenbank auslesen bzw. eintragen kann. :confused:
Für eine schnelle Antwort im Voraus besten Dank.
Gruß
mister.xy
Hi, steht doch da:
java.sql.SQLException: Access denied for user ''@'localhost' to database 'mitarbeiter'
Der Benutzer hat nicht das Recht um auf @localhost zu zugreifen!
Gruß
oafish
Danke für Antwort.
Eine gewisse Zeit lang funktionierte alles reibungslos.
Heute bekam ich beim Starten eines JDBC-Programms folgende Meldung:
DB-Treiber wird geladen...!
ERROR: Access denied for user ''@'localhost' (using password: NO)
DB-Verbindung wurde wieder getrennt.
Exception in thread "main" java.lang.NullPointerException
at insertBank.main(insertBank.java:88)
Als ich nach diesem Benutzer in Datenbank mysql in der Tabelle User schaute, fand ich ihn nicht. Zusätzlich kommt auch noch dieses using password:NO nach localhost.
Ich habe sonst allen Benutzern mittels grant das Zugriffsrecht erteilt. Also müsste alles reibungslos funktionieren, tut es aber nicht. :rolleyes:
Kann mir jemand sagen,wie wieder mit einem JDBC-Programm Daten aus der MySQL-DB auslesen bzw. eintragen kann. :confused:
Für eine schnelle Antwort im Voraus besten Dank.
Gruß
mister.xy
... Du solltest halt mit einem existierenden Benutzer und dessen Passwort auf dei DB connecten...
übrigens wäre in dem Fall der entsprechende Quellcode zur Diagonose durchaus mal hilfreich...
... Ich greife mit einem bestehenden Benutzer (nicht mit dem anonymen Benutzer) auf die Datenbank zu. Hier ist noch der
Quellcode meines Programmes:
/*insertBank.java*/
import java.sql.*;
import java.io.*;
public class insertBank
{
private String user="hielscre";
private String password="polo45";
private static Connection conn;
private static ResultSetMetaData resultMeta;
public static void main(String args[]) throws SQLException
{
//Pruefe korrekten Programmaufruf
if(args.length != 2)
{
System.err.println("Usage: java insertBank <blz>
<bankname>");
System.exit(1);
}
String blz = new String(args[0]);
String bankname = new String(args[1]);
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("DB-Treiber wird geladen...!");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/eshop?user&password");
System.out.println("DB-Verbindung hergestellt...");
conn.setAutoCommit(false);
}
catch(Exception e)
{
//System.err.println("ERROR: "+e.getMessage());
e.printStackTrace();
}
try
{
//Neue Bank in die Datenbank einfuegen
String insertBank = "insert into bank values ('"+ blz +"','"+ bankname +"')";
//System.out.println("insert into bank values ('"+ blz +"','"+ bankname +"');");
Statement insertSt = conn.createStatement();
insertSt.executeUpdate(insertBank);
System.out.println("Neue Bank wurde erfolgreich hinzugefuegt.");
insertSt.close();
conn.commit();
conn.setAutoCommit(true);
//Daten in der Datenbank abfragen
String selectBank = "select * from bank";
Statement stateSt = conn.createStatement();
ResultSet resultS= stateSt.executeQuery(selectBank);
resultMeta = resultS.getMetaData();
int anzSpalten = resultMeta.getColumnCount();
for(int i=1;i<=anzSpalten;i++)
{
System.out.print(resultMeta.getColumnName(i) + ", ");
}
System.out.println();
System.out.println("------------------------------");
while(resultS.next())
{
for(int i=1;i<=anzSpalten;i++)
{
System.out.print(resultS.getString(i) + ", ");
}
System.out.println();
}
System.out.println("------------------------------");
System.out.println("------------------------------");
stateSt.close();
}
catch(SQLException e)
{
System.err.println("SQL-ERROR: "+e.getMessage());
conn.rollback();
}
finally
{
System.out.println("DB-Verbindung wurde wieder getrennt.");
conn.close();
}
}
}
Beim Starten des Programms kommt nach wie vor folgendes:
DB-Treiber wird geladen...!
java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:2926)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:771)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java: 3647)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:11 76)
at com.mysql.jdbc.Connection.createNewIO(Connection.j ava:2544)
at com.mysql.jdbc.Connection.<init>(Connection.java:1474)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonReg isteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager .java:512)
at java.sql.DriverManager.getConnection(DriverManager .java:193)
at insertBank.main(insertBank.java:30)
DB-Verbindung wurde wieder getrennt.
Exception in thread "main" java.lang.NullPointerException
at insertBank.main(insertBank.java:85)
Kann mir jemand sagen, an welcher Stelle sich der Fehler befindet?
bin kein Java-Experte, aber lt.
http://java.sun.com/j2se/1.3/docs/guide/jdbc/getstart/drivermanager.html
sollte das
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/eshop?user&password"); anders aussehen...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.