[MYSQL] Mega Problem MySQL server has gone away

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [MYSQL] Mega Problem MySQL server has gone away

      Ich hab immer die scheis meldung MySQL server has gone away wenn ich auf eine DB zugreifen möchte -.-

      Quellcode

      1. conn = mysql_init(NULL);
      2. if( mysql_real_connect(conn, "localhost", "root", "test", "tut",3306 , NULL,0))
      3. {
      4. printf("Fehler");
      5. }


      Das funktioniert wunderbar localhost ist vorhanden root auch test auch und die db tut auch^^

      Quellcode

      1. sprintf_s(query, 255, "select %s from %s where ID='%d';",value, table,id);
      2. if(mysql_real_query(conn, query, strlen(query)))
      3. {fprintf(stderr, "%s\n", mysql_error(conn));
      4. }

      Und schon kommt der drecks error der einfach ncith weg geht ich hab alles überprüft es ist alles vorhanden in der DB


      Hat ihrgendjemand eine idee ich will nicht aus verzweiflung auf mssql umsteigen :( (das geht nicht unter linux xD)
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Auf MSSQL musst du ganz bestimmt nicht umsteigen - Aber du könntest "Google" verwenden.

      MySQL Doku schrieb:

      Sie (oder der Datenbankadministrator) haben den laufenden Thread mit einer KILL-Anweisung oder einem mysqladmin kill-Befehl angehalten.

      Sie haben versucht, eine Anfrage nach dem Schließen der Serververbindung abzusetzen. Dies weist auf einen Fehler in der Anwendungslogik hin, der korrigiert werden muss.

      Sie haben einen Timeout von der TCP/IP-Verbindung auf der Clientseite erhalten. Dazu kann es bei folgenden Befehlen kommen: mysql_options(..., MYSQL_OPT_READ_TIMEOUT, ...) oder mysql_options(..., MYSQL_OPT_WRITE_TIMEOUT, ...). In diesem Fall können Sie Ihr Problem lösen, indem Sie den Timeout heraufsetzen.

      Sie haben einen Timeout auf der Serverseite und die automatische Neuverbindung ist im Client deaktiviert worden (das Flag reconnect in der MYSQL-Struktur ist gleich 0).

      Sie verwenden einen Windows-Client und der Server hat die Verbindung beendet (wahrscheinlich, weil wait_timeout abgelaufen ist), bevor der Befehl gegeben wurde.

      [...]


      MySQL :: MySQL 5.1 Referenzhandbuch :: A.2.8 MySQL server has gone away-Fehler
    • das hab ich schon durchgescahut aber das kann keiner von den fehlern sein :/

      Ich habe mysql neu installiert habe kein thread gekillt, hab die anfrage nicht nach der server schließung durchgeführt, ich habe k,eine neuverbindung deaktiviert, das packet ist auch nicht zu groß und ich hab sonst auch nix geändertx.x

      Wieso ist scheis DBs so schwer y.y
    • Versuche mal das:

      C-Quellcode

      1. #include <iostream>
      2. #include <string>
      3. #include "mysql.h"
      4. int main( void )
      5. {
      6. const char Verbindung[] = "localhsot";
      7. const char Database[] = " ";
      8. const char User[] = " ";
      9. const char Password[] = " ";
      10. const unsigned int Port = 3306;
      11. MYSQL *MySQL_PTR;
      12. MySQL_PTR = mysql_init( NULL );
      13. if ( MySQL_PTR == NULL )
      14. {
      15. std::cout << "MySQL_INIT Error: " << mysql_error( MySQL_PTR ) << std::endl;
      16. }
      17. mysql_real_connect( MySQL_PTR, Verbindung, User, Password, Database, Port, NULL, 0);
      18. if ( MySQL_PTR == NULL )
      19. {
      20. std::cout << "MySQL_Connect Error: " << mysql_error( MySQL_PTR ) << std::endl;
      21. }
      22. std::cin.get();
      23. return 0;
      24. }
      Alles anzeigen


      Ich habe das aus dem Kopf geschrieben, also Syntaxfehler bitte berichtigen ;-)
    • ja das connecten ist kein problem das funkt wunderbar ;) (dein source geht auch einwandfrei ;))

      das auslesen geht nicht :TT TT:

      if(mysql_query(MySQL_PTR,"")!=0)
      {
      std::cout << "Error: " << mysql_error( MySQL_PTR ) << std::endl;
      }
      //das wäre der fehler :(


      Gibts hier ihrgendjemand der mit C++ schon mal auf eine DB zugegriffen hat ?

      Egal ob Mysql oder Mssql oder auch Postgre SQL xD hauptsache DB ??

      Ich brauch die dringend !!^^

      Obdc ist genau der gleiche scheis in c++ :(
    • Damit sollte es gehen :D
      Ich kann es leider nicht versuchen, da ich eine Headerdatei von MySQL nicht kompilieren kann. Ka warum :D
      Wenn der Code nicht funktioniert, kannst du dann noch die Errors reinschreiben?^^

      C-Quellcode

      1. #include <iostream>
      2. #include <string>
      3. #include "mysql.h"
      4. #pragma comment( lib, "libmysql.lib" )
      5. int main( void )
      6. {
      7. const char Verbindung[] = "localhsot";
      8. const char Database[] = " ";
      9. const char User[] = " ";
      10. const char Password[] = " ";
      11. const unsigned int Port = 3306;
      12. const char Query[] = "SELECT * FROM ";
      13. signed int ReturnValue = 0;
      14. MYSQL *MySQL_PTR;
      15. MySQL_PTR = mysql_init( NULL );
      16. if ( MySQL_PTR == NULL )
      17. {
      18. std::cout << "MySQL_INIT Error: " << mysql_error( MySQL_PTR ) << std::endl;
      19. }
      20. mysql_real_connect( MySQL_PTR, Verbindung, User, Password, Database, Port, NULL, 0 );
      21. if ( MySQL_PTR == NULL )
      22. {
      23. std::cout << "MySQL_Connect Error: " << mysql_error( MySQL_PTR ) << std::endl;
      24. }
      25. ReturnValue = mysql_real_query( MySQL_PTR, Query, Query.length() );
      26. if ( ReturnValue != 0 )
      27. {
      28. std::cout << "Query Error: " << ReturnValue << std::endl;
      29. }
      30. mysql_close( MySQL_PTR );
      31. std::cin.get();
      32. return 0;
      33. }
      Alles anzeigen
    • So damit ich dir helfen kann hab ich ma alles zusammengetragen:^^

      Query Error: 1 //der fehler Server has gone away :P

      code zum compilieren abgeändert(hattest 2 fehler drin ;)( windows.h vergessen und strlen())):

      C-Quellcode

      1. #include <windows.h>
      2. #include <iostream>
      3. #include <string>
      4. #include "mysql.h"
      5. #pragma comment( lib, "libmysql.lib" )
      6. int main( void )
      7. {
      8. const char Verbindung[] = "localhsot";
      9. const char Database[] = "tut";
      10. const char User[] = "root";
      11. const char Password[] = "test";
      12. const unsigned int Port = 3307;
      13. const char Query[] = "SELECT * FROM `man`";
      14. signed int ReturnValue = 0;
      15. MYSQL *MySQL_PTR;
      16. MySQL_PTR = mysql_init( NULL );
      17. if ( MySQL_PTR == NULL )
      18. {
      19. std::cout << "MySQL_INIT Error: " << mysql_error( MySQL_PTR ) << std::endl;
      20. }
      21. mysql_real_connect( MySQL_PTR, Verbindung, User, Password, Database, Port, NULL, 0 );
      22. if ( MySQL_PTR == NULL )
      23. {
      24. std::cout << "MySQL_Connect Error: " << mysql_error( MySQL_PTR ) << std::endl;
      25. }
      26. ReturnValue = mysql_real_query( MySQL_PTR, Query, strlen(Query) ); /*das ist der fehler*/
      27. if ( ReturnValue != 0 )
      28. {
      29. std::cout << "Query Error: " << ReturnValue << std::endl;
      30. }
      31. mysql_close( MySQL_PTR );
      32. std::cin.get();
      33. return 0;
      34. }
      Alles anzeigen
      Connection informationen:

      ********************
      *General Infomation
      ********************
      Server Type: MySQL
      Connection Name: -zensiert-
      Host Name/IP Address: localhost
      Port: 3307
      User Name: root
      Save Password: True

      ********************
      *Advanced Infomation
      ********************
      Settings Save Path: C:\Users\0o0o0o0\Documents\Navicat\MySQL\servers\--zensiert--
      Encoding: 65001 (UTF-8)
      Keepalive Interval (sec): N/A
      Use MySQL character set: True
      Use Compression: False
      Auto Connect: False
      Use Advanced Connections: False

      ********************
      *SSL Infomation
      ********************
      Use SSL: False
      Use Authentication: False
      Client Key:
      Client Certificate:
      CA Certificate:

      ********************
      *SSH Infomation
      ********************
      Use SSH Tunnel: False
      Host Name/IP Address:
      Port: 22
      User Name:
      Authentication Method: Password
      Save Password: False

      ********************
      *HTTP Infomation
      ********************
      Use HTTP Tunnel: False
      Tunnel URL:
      Use password authentication: False
      User Name:
      Save Password: False
      Use certificate authentication: False
      Client Key:
      Client Certificate:
      CA Certificate:
      Use Proxy: False
      Proxy Host:
      Proxy Port: 0
      Proxy User Name:
      Proxy Save Password: False

      ********************
      *Other Infomation
      ********************
      Server Version: 5.1.50-community
      Protocol: 10
      Info: localhost via TCP/IP
      Die Tabelle:
      Imageshack - asdfk.jpg

    • Kannst du bitte das mal versuchen:

      Quellcode

      1. ReturnValue = mysql_real_query( MySQL_PTR, Query, strlen ( Query ) );
      2. switch( ReturnValue )
      3. {
      4. case CR_COMMANDS_OUT_OF_SYNC: std::cout << "Query CR_COMMANDS_OUT_OF_SYNC" << std::endl; break;
      5. case CR_SERVER_GONE_ERROR: std::cout << "Query CR_SERVER_GONE_ERROR" << std::endl; break;
      6. case CR_OUT_OF_MEMORY: std::cout << "Query CR_OUT_OF_MEMORY" << std::endl; break;
      7. case CR_UNKNOWN_ERROR: std::cout << "Query CR_UNKNOWN_ERROR" << std::endl; break;
      8. default: std::cout << "All right ;-)" << std::endl;
      9. }
      Bevor ich mich auf die Suche nach dem Fehler mache, lasse ich das lieber nochmal durch ne switch laufen ;-)
      Bitte nicht böse nehemen =)