MetaModels Workshop in Berlin
Ergebnis 1 bis 12 von 12

Thema: Duplicate entry in primary

  1. #1
    Contao-Nutzer
    Registriert seit
    10.08.2009.
    Beiträge
    69

    Standard Duplicate entry in primary

    Hallo,
    ich habe bei einem Projekt bei Domainfactory immer öfter das Problem, dass die Datenbankeinträge nicht richtig zuende geschrieben werden - so zumindest die Aussage des Supports am Telefon.
    Das würde wohl bei allen CMS hin und wieder passieren.
    Ich solle dann im php My Admin die betreffende Datenbanktabelle reparieren.
    Bei besagtem Projekt trat dies aber in den letzten Wochen gehäuft auf. Das kann doch nicht normal sein. Entweder funktiert dann mal der Login ins Backend nicht, oder im Frontend irgendeine Seite. Je nachdem, welche Tabelle gerade betroffen ist.

    Kann mir da jemand helfen, wo ich auf Fehlersuche gehen kann? Bei einem anderen Projekt des gleichen Providers hatte ich dies auch schon einmal, aber das war so ziemlich einmalig.

    Contao-Version: 3.4.5
    ettliche Erweiterungen installiert...

    Danke, Conny

  2. #2
    Contao-Urgestein
    Registriert seit
    22.10.2013.
    Beiträge
    7.887
    User beschenken
    Wunschliste

    Standard

    Naja, MySQL wird ja wohl vom Hoster zur Verfügung gestellt. Wenn das nicht richtig funktioniert, dann muss es eben vernünftig konfiguriert werden, so dass es zuverlässig funktionieren kann. Das kann unter Umständen auch bedeuten, eben nicht 100.000.000 Datenbanken auf einem Server unterzubringen . Ich glaube kaum, dass du da selbst irgendwelche Fehler korrigieren kannst. Bestenfalls an den Symptomen rumdoktorn.

  3. #3
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.117
    User beschenken
    Wunschliste

    Standard

    Hmm bin seit Jahren mit verschiedenen Installationen bei df. Kann nicht behaupten, das ich Probleme hätte.
    Eventuell liegt es auch an einem zu kleinen Paket mit zu großer Seite und zu großen/vielen anderen Seiten? Kann man nur schwer was zu sagen, ohne weitere Infos. Und ohne selber mal näher zu schauen...
    Ich finde ja, das sich die Pakete unter 10 Euro nicht wirklich lohnen...

    Viele Grüße

  4. #4
    Contao-Nutzer
    Registriert seit
    10.08.2009.
    Beiträge
    69

    Standard Paketgröße

    Hallo,an der Paketgröße kann es eigentlich nicht liegen.
    ManagedHosting Pro
    # 2-Sterne-Performance
    # PremiumService gem. SLA
    # 50 GB Webspace
    # 50 GB Mailspace

    Die Seite ist relativ klein, allerdings sind ettliche Events enthalten, die auch gebucht werden können.
    Mit dem Provider bin ich in Kontakt, aber die schieben immer gern den schwarzen Peter den Entwicklern zu.
    Vielleicht ist das ja auch der Fall, aber in den Scripten wird doch nirgend ein direkter ID-Eintrag in die Datenbank ausgelöst. Die ID sucht sich das System doch selbst.

  5. #5
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    4.136

    Standard

    ettliche Events enthalten, die auch gebucht werden können.
    Klingt für mich nach einer Erweiterung. Ist das vielleicht die Ursache? Ist diese Erweiterung für die verwendete Contao bzw. PHP Version kompatibel?

  6. #6
    Contao-Fan Avatar von Stranger
    Registriert seit
    20.06.2009.
    Ort
    Blankenburg
    Beiträge
    697
    Partner-ID
    5635
    User beschenken
    Wunschliste

    Standard

    Hallo,

    ich bin auch mit dem Problem befasst.
    Die Fehlermeldung lautet "Fatal error: Uncaught Exception with message Query error:
    Duplicate entry"

    Dieser Fehler kann nur auftreten, wenn eine ID einer bestimmten Tabelle bereits existiert und dieser erneut geschrieben werden soll.
    Die Erweiterung ist Contaotypisch eingestellt, sodass bei Inserts keine Primären IDs übergeben werden.
    Beispiel:

    PHP-Code:
                    $arrSet = array
                    (
                        
    'tstamp' => time(),
                        
    'ip' => $this->Environment->ip,
                        
    'date' => time(),
                        
    'pid' => $this->member_id,
                        
    'status' => $cart_status
                    
    );

              
    $this->Database->prepare("INSERT INTO tl_event_cart %s")->set($arrSet)->execute(); 
    Die Erweiterung läuft bei mehr als 10 Installationen einwandfrei. Außerdem ist das Problem auch schon bei einer anderen Contao-Installation aufgetreten als es nur darum ging einen neuen Redakteur anzulegen (tl_user).

    Es wird sicherlich irgendwie daran liegen, dass der Server zu einem bestimmten Zeitpunkt einen Hänger hat oder ein Script zuvor vom User abgebrochen wurde.
    Dadurch wird entweder nur ein "halber" Datensatz geschrieben bzw. die Tabelle ist beschädigt und muss über PHPMyAdmin repariert werden.
    Wenn man das nicht tut, hat man später den Fehler mit dem duplicate entry.

    Muss man bei Contao eigentlich die Datenbankverbindung wieder schließen, die mit $this->Database->prepare etc. genutzt wurde?
    Du willst dich bei mir bedanken?
    Ich freue mich über Geschenke von meiner Amazon-Wunschliste.

    Contao-Anwender seit 2008
    Contao-Entwickler seit 2013, mehr als 50 Contao Erweiterungen programmiert

    Mein Unternehmen aus Blankenburg (Harz): Fast & Media

  7. #7
    Contao-Urgestein
    Registriert seit
    22.10.2013.
    Beiträge
    7.887
    User beschenken
    Wunschliste

    Standard

    "Datenbankeinträge nicht richtig zuende geschrieben", das klingt doch nach einem Fehler, der dabei aufgetreten sein muss. Sei es, dass die Verbindung zum Datenbankserver abgebrochen ist. Sei es, dass die Laufzeit des Skripts zu lang war (max_execution_time mal kontrollieren), das würde mich aber eher wundern in dem Fall. Das müsste doch aber Log-Einträge nach sich ziehen. Entweder in den Server-Logs oder bei dir in system/logs/error.log. Da würde ich mal reinschauen, ob da was steht.

  8. #8
    Contao-Fan Avatar von Stranger
    Registriert seit
    20.06.2009.
    Ort
    Blankenburg
    Beiträge
    697
    Partner-ID
    5635
    User beschenken
    Wunschliste

    Standard

    Danke für den Hinweis.
    Am 17. Juni ist laut Contao System Log (Backend) folgendes passiert:

    [17.06.2015 10:57]
    A new user (ID 429) has registered on the website

    Der Eintrag steht komischerweise nicht in der Datenbank.


    Anschließend passierte laut error.log folgendes:

    [17-Jun-2015 11:25:44 Europe/Berlin]
    PHP Warning: mysqli::real_connect() [<a href='mysqli.real-connect'>mysqli.real-connect</a>]: (HY000/2003): Can't connect to MySQL server on 'mysql5.XXX.de' (111) in /XXXXX/system/modules/core/library/Contao/Database/Mysqli.php on line 46
    #0 [internal function]: __error(2, 'mysqli::real_co...', '/kunden/406603_...', 46, Array)
    #1 /XXXXX/system/modules/core/library/Contao/Database/Mysqli.php(46): mysqli->real_connect('mysql5.XXX', 'XXX', 'XXX', 'XXX', 3306, '')
    #2 /XXXXX/system/modules/core/library/Contao/Database.php(73): Contao\Database\Mysqli->connect()
    #3 /XXXXX/system/modules/core/library/Contao/Database.php(157): Contao\Database->__construct(Array)
    #4 [internal function]: Contao\Database::getInstance()
    #5 /XXXXX/system/modules/core/library/Contao/System.php(124): call_user_func(Array)
    #6 /XXXXX/system/modules/core/library/Contao/User.php(85): Contao\System->import('Database')
    #7 /XXXXX/system/modules/core/classes/BackendUser.php(94): Contao\User->__construct()
    #8 /XXXXX/system/modules/core/library/Contao/User.php(147): Contao\BackendUser->__construct()
    #9 [internal function]: Contao\User::getInstance()
    #10 /XXXXX/system/modules/core/library/Contao/System.php(124): call_user_func(Array)
    #11 /XXXXX/system/modules/core/controllers/BackendIndex.php(33): Contao\System->import('BackendUser', 'User')
    #12 /XXXXX/contao/index.php(19): Contao\BackendIndex->__construct()
    #13 {main}

    [17-Jun-2015 11:25:45 Europe/Berlin] PHP Fatal error: Uncaught exception 'Exception' with message 'Can't connect to MySQL server on 'mysql5.XXX.de' (111)' thrown in /XXXXX/system/modules/core/library/Contao/Database/Mysqli.php on line 50
    #0 /XXXXX/system/modules/core/library/Contao/Database.php(73): Contao\Database\Mysqli->connect()
    #1 /XXXXX/system/modules/core/library/Contao/Database.php(157): Contao\Database->__construct(Array)
    #2 [internal function]: Contao\Database::getInstance()
    #3 /XXXXX/system/modules/core/library/Contao/System.php(124): call_user_func(Array)
    #4 /XXXXX/system/modules/core/library/Contao/User.php(85): Contao\System->import('Database')
    #5 /XXXXX/system/modules/core/classes/BackendUser.php(94): Contao\User->__construct()
    #6 /XXXXX/system/modules/core/library/Contao/User.php(147): Contao\BackendUser->__construct()
    #7 [internal function]: Contao\User::getInstance()
    #8 /XXXXX/system/modules/core/library/Contao/System.php(124): call_user_func(Array)
    #9 /XXXXX/system/modules/core/controllers/BackendIndex.php(33): Contao\System->import('BackendUser', 'User')
    #10 /XXXXX/contao/index.php(19): Contao\BackendIndex->__construct()
    #11 {main}


    Die Meldung wiederholte bis [17-Jun-2015 11:26:42 Europe/Berlin]

    Danach dann die Meldung:
    [17-Jun-2015 11:28:00 Europe/Berlin] PHP Fatal error: Uncaught exception 'Exception' with message 'Query error: Incorrect key file for table './dbXXX/tl_search_index.MYI'; try to repair it (DELETE FROM tl_search_index WHERE pid='3')' thrown in /XXXXX/system/modules/core/library/Contao/Database/Statement.php on line 293
    #0 /XXXXX/system/modules/core/library/Contao/Database/Statement.php(262): Contao\Database\Statement->query()
    #1 /XXXXX/system/modules/core/library/Contao/Search.php(287): Contao\Database\Statement->execute('3')
    #2 /XXXXX/system/modules/core/classes/FrontendTemplate.php(298): Contao\Search::indexPage(Array)
    #3 /XXXXX/system/modules/core/classes/FrontendTemplate.php(113): Contao\FrontendTemplate->addToSearchIndex()
    #4 /XXXXX/system/modules/core/pages/PageRegular.php(186): Contao\FrontendTemplate->output(true)
    #5 /XXXXX/system/modules/core/controllers/FrontendIndex.php(250): Contao\PageRegular->generate(Object(Contao\PageModel), true)
    #6 /XXXXX/index.php(20): Contao\FrontendIndex->run()
    #7 {main}


    Wahrscheinlich hat das mehrere Tabellen beschädigt.
    Anschließend die erste Duplicate Meldung.


    [17-Jun-2015 11:33:02 Europe/Berlin] PHP Fatal error: Uncaught exception 'Exception' with message 'Query error: Duplicate entry '7364' for key 'PRIMARY' (INSERT INTO tl_log (tstamp, source, action, username, text, func, ip, browser) VALUES(1434533582, 'FE', 'ERROR', '', 'The request for page ID &quot;bildungsangebote/details&quot; contained unused GET parameters: &quot;details&quot; (https://www.domain.de/bildungsangebo...tails/xxx.html)', 'Contao\\PageError404::generate', '36.251.x.x', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)'))' thrown in /XXXXX/system/modules/core/library/Contao/Database/Statement.php on line 293

    Sowie die Meldung dass Tabellen gecrashed sind:
    [17-Jun-2015 11:33:55 Europe/Berlin] PHP Fatal error: Uncaught exception 'Exception' with message 'Query error: Table './dbXXX/tl_search_index' is marked as crashed and should be repaired (DELETE FROM tl_search_index WHERE pid='48')' thrown in /XXXXX/system/modules/core/library/Contao/Database/Statement.php on line 293

    Und so zieht sich das dann ziemlich lang fort.
    Du willst dich bei mir bedanken?
    Ich freue mich über Geschenke von meiner Amazon-Wunschliste.

    Contao-Anwender seit 2008
    Contao-Entwickler seit 2013, mehr als 50 Contao Erweiterungen programmiert

    Mein Unternehmen aus Blankenburg (Harz): Fast & Media

  9. #9
    Contao-Urgestein
    Registriert seit
    22.10.2013.
    Beiträge
    7.887
    User beschenken
    Wunschliste

    Standard

    Hmm, eine Minute(!) lang keine Verbindung zur Datenbank, das kann es ja wohl nicht sein.

  10. #10
    Contao-Fan Avatar von Stranger
    Registriert seit
    20.06.2009.
    Ort
    Blankenburg
    Beiträge
    697
    Partner-ID
    5635
    User beschenken
    Wunschliste

    Standard

    Kann ja durchaus sein, dass genau zu dem Zeitpunkt jemand irgendwas auf der Website machen wollte und dadurch eine oder mehrere Tabellen beschädigt wurden?
    Du willst dich bei mir bedanken?
    Ich freue mich über Geschenke von meiner Amazon-Wunschliste.

    Contao-Anwender seit 2008
    Contao-Entwickler seit 2013, mehr als 50 Contao Erweiterungen programmiert

    Mein Unternehmen aus Blankenburg (Harz): Fast & Media

  11. #11
    Contao-Urgestein
    Registriert seit
    22.10.2013.
    Beiträge
    7.887
    User beschenken
    Wunschliste

    Standard

    Ja, so sehe ich das auch.

  12. #12
    Contao-Nutzer Avatar von TLight
    Registriert seit
    30.06.2009.
    Ort
    bei München
    Beiträge
    147

    Standard

    Hallo Stranger!

    Hat sich Dein Problem mit den Datenbankfehlern lösen lassen? Ich bin auch bei der dF und habe seit ein paar Wochen ähnliche Probleme (v. a. in der tl_search_index). Ein Reparieren der Tabellen oder das Löschen der tl_search_index schafft bei mir leider nur vorübergehend Besserung.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •