Ergebnis 1 bis 11 von 11

Thema: DB-Problem seit 3.2.x ???

  1. #1
    Contao-Nutzer
    Registriert seit
    15.11.2011.
    Ort
    Groß-Gerau
    Beiträge
    77

    Frage DB-Problem seit 3.2.x ???

    Hallo,

    ich habe eben mal eine neue 3.2.4 aufgesetzt und bekomme leider bei der DB-Aktualisierung einige Fehler angezeigt, die ich trotz Aktualisierungsbefehl nicht geradegebogen bekomme:

    ALTER TABLE `tl_article` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_form` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_member` CHANGE `username` `username` varchar(64) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_page` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_search_index` CHANGE `word` `word` varchar(64) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_user` CHANGE `username` `username` varchar(64) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_calendar_events` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_calendar_feed` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_faq` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_news` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_news_feed` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_newsletter` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';

    Kann mir bitte jemand erläutern / erklären, wie ich das korrigieren kann? Hatte das bereits bei einem Update von 3.1.3 auf 3.2.3 festgestellt und habe dann halt einfach das Backup der 3.1.3 wieder eingespielt. Jetzt handelt es sich jedoch um eine vollständig neue Installation. *kopfkratz*

    Danke - Jens

  2. #2
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    COLLATE utf8_bin
    Die DB sollte als COLLATE utf8_general_ci besitzen.

  3. #3
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

  4. #4
    Contao-Nutzer
    Registriert seit
    15.11.2011.
    Ort
    Groß-Gerau
    Beiträge
    77

    Standard

    Zitat Zitat von KlausGrenoble Beitrag anzeigen
    Die DB sollte als COLLATE utf8_general_ci besitzen.
    OK, wo muss ich das umstellen? Kann ich das irgendwie für die gesamte DB über phpmyAdmin machen?

    Danke - Jens

  5. #5
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Richtig. Das ist eine Konfiguration der Db. Und das geht über den phpmyAdmin.

  6. #6
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    7.337
    Partner-ID
    152
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das Installtool kann die Kollation ebenfalls ändern.

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.289
    Partner-ID
    10107

    Standard

    Ich bekomme dieses Verhalten selbst mit einer frischen Installation von Contao 3.2.4.


    Zitat Zitat von KlausGrenoble Beitrag anzeigen
    Die DB sollte als COLLATE utf8_general_ci besitzen.
    Mit der Collation der Database an sich hat das wahrscheinlich nichts zu tun. Contao setzt das `alias` field auf utf8_bin. Und die queries die jehopeman beschrieben hat kommen auch von Contao. Diese queries versuchen das Feld `alias` zu ändern und daraus das Feld `alias` zu machen (also den Feldnamen gleich zu belassen) und als Eigenschaften varchar(128) mit utf8_bin collation zu setzen (und NOT NULL mit default Wert '') -> aber das field `alias` hat schon diese Struktur, trotzdem will Contao diese queries immer wieder ausführen. Manchmal ist Contao zufrieden und will diese "Änderungen" nicht machen, dann plötzlich, wenn man wieder mal ein Database update durchführen will, kommen auch diese queries wieder. Wann genau habe ich noch nicht herausgefunden.

    Prinzipiell muss man sich aber keine Sorgen wegen diesen Queries machen.
    Geändert von Spooky (03.02.2014 um 09:41 Uhr)

  8. #8
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.519
    User beschenken
    Wunschliste

    Standard

    Na nicht ganz.
    Das was in der Fehlermeldung steht ist das, was Contao tun möchte, nicht das, was es vorher selbst ermittelt hat.
    Wäre das identisch, auch Groß-/Kleinschreibung betreffend, käme es zu solchen Meldungen nicht. Auch der Strictmodus von MySQl kann dort eine Rolle spielen.

    Kann man selber prüfen, mit einem DB Tool eurer Wahl:
    Code:
    -- Stict Modus Prüfung, muss leer sein
    SHOW VARIABLES LIKE 'sql_mode';
    
    -- wenn nicht leer dann
    SET sql_mode = '';
    
    -- Nun lässt man sich das Create Statement zurückgeben:
    SHOW CREATE TABLE tl_MODULE_TABLE_NAME;
    tl_MODULE_TABLE_NAME natürlich durch den eigenen Tabellen Namen ersetzen.

    Hier kann man dann gut sehen, ob z.B. da was von
    Code:
     ... NOT NULL default '';
    so will es Contao haben, oder ob
    Code:
    ...  NOT NULL DEFAULT '';
    kommt.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.289
    Partner-ID
    10107

    Standard

    Zitat Zitat von BugBuster Beitrag anzeigen
    Das was in der Fehlermeldung steht ist das, was Contao tun möchte, nicht das, was es vorher selbst ermittelt hat.
    Schon klar, aber das Problem ist ja, dass diese queries immer wieder mal kommen, obwohl die structure der tables (bzw. des `alias`fields) eh schon so ist, wie Contao es haben möchte. Die queries
    Code:
    ALTER TABLE `tl_article` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_form` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_member` CHANGE `username` `username` varchar(64) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_page` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_search_index` CHANGE `word` `word` varchar(64) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_user` CHANGE `username` `username` varchar(64) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_calendar_events` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_calendar_feed` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_faq` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_news` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_news_feed` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_newsletter` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    Kommen immer wieder mal, obwohl das field `alias` schon die structure varchar(128) COLLATE utf8_bin NOT NULL default '' hat. Wenn es am strict mode liegt und zB vom Server ... NOT NULL DEFAULT ''; zurückkommt, würde Contao ja bei jedem Database update diese queries ausführen wollen, oder nicht? Hm, oder vielleicht will Contao es erst dann machen, wenn sich irgendwo eine DCA geändert hat.
    Geändert von Spooky (03.02.2014 um 10:30 Uhr)

  10. #10
    Contao-Nutzer
    Registriert seit
    15.11.2011.
    Ort
    Groß-Gerau
    Beiträge
    77

    Lächelndes Gesicht Problem (scheinbar) gelöst

    Hallo und vielen Dank für die Tipps!

    Nachdem ich das Problem bei mehreren Installationen hatte und nicht überall ein "kreatives Chaos" in den DBs veranstalten wollte, habe ich beim Hoster um Änderung der DB-Einstellungen gebeten.

    Ergebnis: An der DB muss nichts geändert werden. SONDERN in meiner localconfig.php. Nämlich den Wert "$GLOBALS['TL_CONFIG']['dbDriver'] = 'MySQLi';" in 'MySQL'.

    Die zuvor vorhandenen DB-Fehler werden nicht mehr angezeigt.

    Gruß - Jens

  11. #11
    Alter Contao-Hase Avatar von bizon
    Registriert seit
    16.06.2010.
    Beiträge
    1.125

    Standard

    @jehopeman
    Das ist rückwärts gerudert.
    MySQLi ist die Weiterentwicklung des Datenbanktreibers MySQL, wobei das 'i' für improved steht. MySQLi bringt einige neue Funktionen mit und wird den MySql-Treiber auf kurz oder lang ganz ersetzen. Mein Provider (uberspace) hat den MySQL bereits auf deprecated gesetzt.

    Du müsstest die Serverkonfiguration überprüfen, evtl ist der PHP support für MySQLi nicht aktiviert.
    Und den Treiber für die Datenbank wählst du am einfachsten im Install-Tool bei der Datenbankverbindung aus.

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
  •