Die Situation ist folgende:
Ich habe eine Tabelle “Wort” mit ca. 500 Einträgen. Dazu habe ich eine Tabelle “Zähler”, in der u.a. 2 Werte aus der Tabelle “Wort” eingetragen werden (also fk_wort und fk_wort2). Was genau gemacht wird, ist nicht so wichtig.
Nun mein Problem:
Ich will nun, dass alle Wörter miteinander verglichen und in die Tabelle “Zähler” eingetragen werden. Jedoch bricht das Eintragen ab, nachdem die ersten 64 Wörter miteinander verglichen & eingetragen wurden. Aufgefallen ist mir dabei noch, dass diese Datenbank dabei eine Gesamtgröße von 750 KiB hatte.
Dies geschieht im PHPMyAdmin-SQl.
An meinem Rechner zuhause hab ich das “einfache” SQL (also ohne alles andere) und da werden problemlos alle Einträge getätigt.
Leider komme ich erst nächste Woche wieder an den Rechner dran, auf dem ich das Problem habe, von daher wäre ich sehr dankbar, wenn ihr mir schon so sagen könntet, wo das Problem liegen könnte.
Es gab eine Fehlermeldung, aber ich komme erst nächste Woche wieder an den Rechner dran und kann deshalb die Fehlermeldung jetzt hier nicht posten (hatte auch gehofft, dass ich die Lösung irgendwo finde und diese deshalb nicht kopiert).
Bei mir läuft immer ein Java-Programm und hab so ca. 3 Datenbank-Einträge pro Sekunde. Wie lange das Programm nun genau bis zum Absturz läuft, habe ich nicht gemessen, aber es waren schon ein paar Minuten.
Last packet sent to the server was 0 ms ago.
Exception in thread “main” org.hibernate.exception.JDBCConnectionException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:97)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)
at app.music.MusicManager.getMusicById(MusicManager.java:121)
at app.similarity.SimilarityManager.addSimilarity(SimilarityManager.java:45)
at app.dailyUpdates.ChargeSimilarity.charge(ChargeSimilarity.java:82)
at app.dailyUpdates.Updates.updates(Updates.java:10)
at util.HibernateUtil.getSession(HibernateUtil.java:46)
at app.score.DailyScoreManager.removeAllFromDailyScore(DailyScoreManager.java:100)
at app.dailyUpdates.DailyUpdates.(DailyUpdates.java:14)
at app.dailyUpdates.DailyUpdates.main(DailyUpdates.java:18)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Last packet sent to the server was 0 ms ago.
at sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2120)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:723)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:46)
at sun.reflect.GeneratedConstructorAccessor15.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
… 12 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The driver was unable to create a connection due to an inability to establish the client portion of a socket.
This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable.
For Unix-based platforms, see the manual page for the ‘ulimit’ command. Kernel or system reconfiguration may also be required.
For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271).
at sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:335)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2043)
… 24 more
Caused by: java.net.BindException: Address already in use: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:284)
… 25 more
Ich wäre sehr dankbar, wenn mir jemand helfen kann.
also hat das ganze nichts mit phpmyadmin zu tun sondern mit java und deiner fehler sind auch von java und haben nichts mit php/mysql zu tun, seh ich das richtig? ^^
[quote=“Tsubasa”]
15:16:41,640 ERROR JDBCExceptionReporter:101 - Communications link failure
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The driver was unable to create a connection due to an inability to establish the client portion of a socket.
This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable.
For Unix-based platforms, see the manual page for the ‘ulimit’ command. Kernel or system reconfiguration may also be required.
Caused by: java.net.BindException: Address already in use: connect[/quote]
Ich habe eher das Gefühl, dass es eine Einschränkung der MySQL-DB in PHPMyAdmin ist, die mir hier Probleme bereitet. Wie ich ja schon erwähnte, läuft alles problemlos, wenn ich das “einfache” MySQL nehme (also den MySQL Server 5.1 außerhalb der PHPMyAdmin-Umgebung).
Und ich bin auf das PHPMyAdmin angewiesen, weil das Programm noch größer ist, im Internet laufen können soll und auch von dort u.U. Einträge in die DB vorgenommen werden.
Kannst du mir dann wenigstens sagen, wo ich die Änderungen vornehmen kann?
die logfile die du gepostet hast hat nichts mit phpmyadmin zu tun, phpmyadmin ist ein frontend für MySql und läuft mit php/html/css - java hat damit nichts zu tun
also sag bitte nochmal wo genau hier phpmyadmin zum einsatz kommt
@ michi7x7: Für den Test zuhause hatte ich die Daten exportiert und auf meinem Rechner in MySQL importiert. Ich wollte da nur nachschauen / testen, ob der Fehler in der Java-Datei liegt.
Die Daten sollen in einer MySQL-DB gespeichert werden. Hierfür wird das MySQL aus dem PHPMyAdmin genutzt.
Java kommuniziert nur mit MySQL. Der Rest hat nix mit Java zu tun.
Aber ich verstehe halt nicht, warum die Daten nicht komplett eingetragen werden, wenn ich das MySQL aus der phpMyAdmin-Umgebung nutze. Das ist ja mein eigentliches Problem.
Wen ich jetzt hier im falschen Forum sein sollte, dann entschuldige ich mich dafür. Ich hatte halt nur gedacht, dass ich irgendwas aus der phpMyAdmin-Umgebun ändern muss und habe deshalb hier nachgefragt.
Und wie gesagt: Als ich die Daten exportiert hatte und es zuhause getestet habe, gings ja.
[size=150]Du kannst dich nicht von deinem PC zuhause mit der Datenbank hier verbinden!!!
[/size]
Und phpMyAdmin ist nur ein Tool, das sich mit der MySQL-Datenbank verbindet und SQL-Kommandos auf der Datenbank ausführt.
@ michi7x7: Ich hatte doch schon mal geschrieben, dass ich dort mein eigenens SQL genutzt habe, dass ich auf meinem Rechner installiert habe.
@ Morpheus: Ich vermute, dass das Problem im phpMyAdmin liegt, dass ich also z.B. irgendwelche Rechte für die SQL-DB nicht habe (oder nicht genügend, z.B. Speicherkapazität o.ä.). Ich komme wahrscheinlich morgen wieder an den Rechner dran und schaue nochmal wegen Fehlermeldungen nach (die dürften in den logfiles dann sein, oder?). Hatte beim letzten Mal nur auf die Fehlermeldung geachtet, die ich in der Java-Konsole bekommen hatte.
Ich habe eine MySQL-Datenbank in phpMyAdmin integriert, u.a. mit den Tabbelen “Wort” und “Zähler”. In der Tabelle Wort stehen alle möglichen Wörter drin, in der Tabelle Zähler stehen 2 Fremdschlüssel zu der Tabelle Wort (also fk_wort und fk_wort2) sowie eine Spalte, in der gezählt wird, wie viele gemeinsame Buchstaben die haben.
Das Java-Programm nimmt sich nun immer 2 Wörter aus der Tabelle Wort, zählt die Anzahl der gleichen Buchstaben und trägt das dann in die Tabelle Zähler ein. Nachdem die ersten 64 Wörter miteinander verglichen wurden, bricht das Programm aber mit der Fehlermeldung von vorheriger Seite ab. Dabei hätten noch viel mehr Vergleiche / Zählungen erfolgen müssen.