Ergebnis 1 bis 31 von 31

Thema: Installtool will Datenbank nicht aktualisieren

  1. #1
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard Installtool will Datenbank nicht aktualisieren

    Hi Leute,
    nach einem Update auf die neuste Version 4.12.5 wirft das Installtool folgenden Fehler in den logs:

    Code:
    [2021-12-17T11:36:41.872701+01:00] request.INFO: Matched route "contao_install". {"route":"contao_install","route_parameters":{"_route":"contao_install","_scope":"backend","_token_check":true,"_controller":"Contao\\InstallationBundle\\Controller\\InstallationController::installAction"},"request_uri":"xxx/contao/install","method":"POST"} []
    [2021-12-17T11:36:42.499805+01:00] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred while executing 'ALTER TABLE tl_files ENGINE = MyISAM':  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes" at /xxx/contao4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 128 {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'ALTER TABLE tl_files ENGINE = MyISAM':\n\nSQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes at /xxx/contao4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:128)\n[previous exception] [object] (Doctrine\\DBAL\\Driver\\PDO\\Exception(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes at /xxx/contao4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18)\n[previous exception] [object] (PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes at /xxx/contao4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:55)"} []
    Was kann ich da machen?
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Du bist noch auf MyISAM. Hat das einen bestimmten Grund?
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Nicht bewußt
    Wie kann ich das ändern?

    Grüße
    JK
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Müsstest du in deiner config.yaml konfiguriert haben.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Ja, das ist war!

    Hier die config.sys:

    Code:
    doctrine:
        dbal:
            connections:
                default:
                    default_table_options:
                        charset: utf8
                        collate: utf8_unicode_ci
                        engine: MyISAM
                    options:
                        1002: "SET SESSION sql_mode=(SELECT CONCAT(@@sql_mode,',TRADITIONAL'))"
    Kann man die Zeile "engine..." einfach raus nehmen?


    Grüße
    JK
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Diese ganze Sektion kann weg:
    Code:
                    default_table_options:
                        charset: utf8
                        collate: utf8_unicode_ci
                        engine: MyISAM
    Außer eben du hattest das aus einem bestimmten Grund gemacht.
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Habe jettzt den Bereich gelöscht und neu hochgeladen.
    Danach habe ich den Prod._cache erneuert und das InstallTool erneut lafen gelassen. Leider ist wieder ein Fehler aufgetreten:

    Code:
    [2021-12-17T11:36:41.872701+01:00] request.INFO: Matched route "contao_install". {"route":"contao_install","route_parameters":{"_route":"contao_install","_scope":"backend","_token_check":true,"_controller":"Contao\\InstallationBundle\\Controller\\InstallationController::installAction"},"request_uri":"http://xxx/contao/install","method":"POST"} []
    Grüße
    JK
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Das ist kein Fehler, nur eine Info.
    » sponsor me via GitHub or PayPal or Revolut

  9. #9
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Ok, das Installtool läuft aber trotzdem nicht durch. Ich habe hier nochmal das log:


    Code:
    [2021-12-17T11:36:42.499805+01:00] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred while executing 'ALTER TABLE tl_files ENGINE = MyISAM':  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes" at /xxx/contao4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 128 {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'ALTER TABLE tl_files ENGINE = MyISAM':\n\nSQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes at /xxx/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:128)\n[previous exception] [object] (Doctrine\\DBAL\\Driver\\PDO\\Exception(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes at /xxx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18)\n[previous exception] [object] (PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes at /xxx/contao4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:55)"} []
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Welche Operationen wollen im Install Tool durchgeführt werden?
    » sponsor me via GitHub or PayPal or Revolut

  11. #11
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Ein ganzer Haufen:

    Code:
    ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX alias ON tl_form
    ALTER TABLE tl_form CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX pid_invisible ON tl_form_field
    ALTER TABLE tl_form_field CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX pid ON tl_image_size
    ALTER TABLE tl_image_size CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX pid ON tl_image_size_item
    ALTER TABLE tl_image_size_item CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    ALTER TABLE tl_layout CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    ALTER TABLE tl_log CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX username ON tl_member
    DROP INDEX login_disable_start_stop ON tl_member
    DROP INDEX email ON tl_member
    ALTER TABLE tl_member CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX disable_start_stop ON tl_member_group
    ALTER TABLE tl_member_group CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    ALTER TABLE tl_module CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX alias ON tl_news
    DROP INDEX pid_published_featured_start_stop ON tl_news
    ALTER TABLE tl_news CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    ALTER TABLE tl_news_archive CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX alias ON tl_news_feed
    ALTER TABLE tl_news_feed CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX pid ON tl_newsletter
    ALTER TABLE tl_newsletter CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    ALTER TABLE tl_newsletter_channel CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX pid_hash ON tl_newsletter_deny_list
    ALTER TABLE tl_newsletter_deny_list CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX pid_email ON tl_newsletter_recipients
    DROP INDEX email ON tl_newsletter_recipients
    DROP INDEX active ON tl_newsletter_recipients
    ALTER TABLE tl_newsletter_recipients CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX token ON tl_opt_in
    DROP INDEX removeon ON tl_opt_in
    ALTER TABLE tl_opt_in CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX reltable_relid ON tl_opt_in_related
    ALTER TABLE tl_opt_in_related CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX alias ON tl_page
    DROP INDEX type_dns ON tl_page
    DROP INDEX pid_published_type_start_stop ON tl_page
    ALTER TABLE tl_page CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX pid ON tl_rocksolid_slide
    ALTER TABLE tl_rocksolid_slide CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    ALTER TABLE tl_rocksolid_slider CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX url ON tl_search
    DROP INDEX checksum_pid ON tl_search
    ALTER TABLE tl_search CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX pid ON tl_search_index
    ALTER TABLE tl_search_index CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX term ON tl_search_term
    DROP INDEX documentfrequency ON tl_search_term
    ALTER TABLE tl_search_term CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX pid ON tl_style
    ALTER TABLE tl_style CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX name ON tl_style_sheet
    ALTER TABLE tl_style_sheet CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    ALTER TABLE tl_theme CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    ALTER TABLE tl_undo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX username ON tl_user
    DROP INDEX email ON tl_user
    ALTER TABLE tl_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    ALTER TABLE tl_user_group CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    DROP INDEX pid_fromtable_version ON tl_version
    DROP INDEX userid ON tl_version
    ALTER TABLE tl_version CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    
    Spalten ändern
    	Alle auswählen
    
    ALTER TABLE tl_article CHANGE alias alias VARCHAR(255) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_calendar_events CHANGE alias alias VARCHAR(255) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_calendar_feed CHANGE alias alias VARCHAR(255) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_faq CHANGE alias alias VARCHAR(255) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    DROP INDEX path ON tl_files
    ALTER TABLE tl_files CHANGE name name VARCHAR(255) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_files CHANGE extension extension VARCHAR(16) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_files CHANGE path path VARCHAR(1022) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_form CHANGE alias alias VARCHAR(255) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_member CHANGE username username VARCHAR(64) DEFAULT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_news CHANGE alias alias VARCHAR(255) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_news_feed CHANGE alias alias VARCHAR(255) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_newsletter CHANGE alias alias VARCHAR(255) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_page CHANGE urlPrefix urlPrefix VARCHAR(128) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_page CHANGE alias alias VARCHAR(255) DEFAULT '' NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_search_term CHANGE term term VARCHAR(64) NOT NULL COLLATE `utf8mb4_bin`
    ALTER TABLE tl_user CHANGE username username VARCHAR(64) DEFAULT NULL COLLATE `utf8mb4_bin`
    
    Spalten anlegen
    	Alle auswählen
    	
    
    CREATE INDEX name ON tl_cron_job (name)
    CREATE INDEX series ON tl_remember_me (series)
    CREATE UNIQUE INDEX value ON tl_remember_me (value)
    CREATE INDEX job_id ON tl_crawl_queue (job_id)
    CREATE INDEX uri_hash ON tl_crawl_queue (uri_hash)
    CREATE INDEX processed ON tl_crawl_queue (processed)
    CREATE INDEX alias ON tl_article (alias)
    CREATE INDEX pid_published_incolumn_start_stop ON tl_article (
      pid, published, incolumn, start, stop)
    CREATE INDEX alias ON tl_calendar_events (alias)
    CREATE INDEX pid_published_featured_start_stop ON tl_calendar_events (
      pid, published, featured, start, stop
    )
    CREATE INDEX alias ON tl_calendar_feed (alias)
    CREATE INDEX published ON tl_comments (published)
    CREATE INDEX source_parent_published ON tl_comments (source, parent, published)
    CREATE INDEX source_parent_active_email ON tl_comments_notify (source, parent, active, email)
    CREATE INDEX tokenremove ON tl_comments_notify (tokenremove)
    CREATE INDEX pid_ptable_invisible_start_stop ON tl_content (
      pid, ptable, invisible, start, stop
    )
    CREATE INDEX pid_published ON tl_faq (pid, published)
    CREATE INDEX pid ON tl_files (pid)
    CREATE UNIQUE INDEX uuid ON tl_files (uuid)
    CREATE INDEX extension ON tl_files (extension)
    CREATE INDEX path ON tl_files (
      path(768)
    )

    Grüße
    JK
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    ALTER TABLE tl_files ENGINE = MyISAM steht da aber nicht dabei. Welcher Fehler tritt denn nun tatsächlich auf? Nutze dafür den Debug-Modus.
    Geändert von Spooky (17.12.2021 um 12:59 Uhr)
    » sponsor me via GitHub or PayPal or Revolut

  13. #13
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Hier die drei Abschnitte:



    Code:
    PDOException:
    SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 3072 bytes
    
      at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:55
      at PDO->exec('ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci')
         (vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:55)
      at Doctrine\DBAL\Driver\PDOConnection->exec('ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci')
         (vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:1533)
      at Doctrine\DBAL\Connection->executeStatement('ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci')
         (vendor/contao/installation-bundle/src/Database/Installer.php:99)
      at Contao\InstallationBundle\Database\Installer->execCommand('2f4b3d22e21b1f7d6768a7a3b3da2885')
         (vendor/contao/installation-bundle/src/Controller/InstallationController.php:391)
      at Contao\InstallationBundle\Controller\InstallationController->adjustDatabaseTables()
         (vendor/contao/installation-bundle/src/Controller/InstallationController.php:105)
      at Contao\InstallationBundle\Controller\InstallationController->installAction()
         (vendor/symfony/http-kernel/HttpKernel.php:152)
      at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
         (vendor/symfony/http-kernel/HttpKernel.php:74)
      at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
         (vendor/symfony/http-kernel/Kernel.php:202)
      at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
         (web/index.php:31)
      at require('/kunden/xxx/contao4/web/index.php')
         (web/app.php:4)
    Code:
    Doctrine\DBAL\Driver\PDO\Exception:
    SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 3072 bytes
    
      at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18
      at Doctrine\DBAL\Driver\PDO\Exception::new(object(PDOException))
         (vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:60)
      at Doctrine\DBAL\Driver\PDOConnection->exec('ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci')
         (vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:1533)
      at Doctrine\DBAL\Connection->executeStatement('ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci')
         (vendor/contao/installation-bundle/src/Database/Installer.php:99)
      at Contao\InstallationBundle\Database\Installer->execCommand('2f4b3d22e21b1f7d6768a7a3b3da2885')
         (vendor/contao/installation-bundle/src/Controller/InstallationController.php:391)
      at Contao\InstallationBundle\Controller\InstallationController->adjustDatabaseTables()
         (vendor/contao/installation-bundle/src/Controller/InstallationController.php:105)
      at Contao\InstallationBundle\Controller\InstallationController->installAction()
         (vendor/symfony/http-kernel/HttpKernel.php:152)
      at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
         (vendor/symfony/http-kernel/HttpKernel.php:74)
      at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
         (vendor/symfony/http-kernel/Kernel.php:202)
      at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
         (web/index.php:31)
      at require('/xxx/contao4/web/index.php')
         (web/app.php:4)
    Code:
    Doctrine\DBAL\Exception\DriverException:
    An exception occurred while executing 'ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci':
    
    SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 3072 bytes
    
      at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:128
      at Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException('An exception occurred while executing \'ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci\':SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 3072 bytes', object(Exception))
         (vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:182)
      at Doctrine\DBAL\DBALException::wrapException(object(Driver), object(Exception), 'An exception occurred while executing \'ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci\':SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 3072 bytes')
         (vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:159)
      at Doctrine\DBAL\DBALException::driverExceptionDuringQuery(object(Driver), object(Exception), 'ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci', array())
         (vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:2225)
      at Doctrine\DBAL\Connection->handleExceptionDuringQuery(object(Exception), 'ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci', array(), array())
         (vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:1537)
      at Doctrine\DBAL\Connection->executeStatement('ALTER TABLE tl_files CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci')
         (vendor/contao/installation-bundle/src/Database/Installer.php:99)
      at Contao\InstallationBundle\Database\Installer->execCommand('2f4b3d22e21b1f7d6768a7a3b3da2885')
         (vendor/contao/installation-bundle/src/Controller/InstallationController.php:391)
      at Contao\InstallationBundle\Controller\InstallationController->adjustDatabaseTables()
         (vendor/contao/installation-bundle/src/Controller/InstallationController.php:105)
      at Contao\InstallationBundle\Controller\InstallationController->installAction()
         (vendor/symfony/http-kernel/HttpKernel.php:152)
      at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
         (vendor/symfony/http-kernel/HttpKernel.php:74)
      at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
         (vendor/symfony/http-kernel/Kernel.php:202)
      at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
         (web/index.php:31)
      at require('/xxx/contao4/web/index.php')
         (web/app.php:4)
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Zitat Zitat von kubjo Beitrag anzeigen
    Code:
    PDOException:
    SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 3072 bytes
    Sind diese Dinge gegeben in der Hosting Umgebung: https://docs.contao.org/manual/de/in...-konfiguration ?
    » sponsor me via GitHub or PayPal or Revolut

  15. #15
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Das konnt ich rausfinden:

    PHP 7.3.10
    MySQL 5.6
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Dazu musst du den Hoster Fragen. Vermutlich fehlt zumindest innodb_large_prefix = 1.

    Da MySQL 5.6 schon sehr alt ist würde ich aber empfehlen auf ein Hosting zu wechseln, wo zumindest MySQL 8 oder MariaDB 10.5 zum Einsatz kommt.
    » sponsor me via GitHub or PayPal or Revolut

  17. #17
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Hallo Spooky,
    ich lehne mich jetzt mal aus dem Fenster und sage, dass es daran eigentlich nicht liegen kann.
    Auf dem Server liegen einige Installationen, die alle die gleichen php Einstellung (und auch die gleiche MySQL Version) teilen, und diese funktionieren.

    Grüße
    JK
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

  18. #18
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.749
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Sind ja sicher nicht alles die gleichen Installationen.

    Außerdem, wenn Du für Deine anderen Installationen über die config.yml auch noch auf myISAM eingestellt hast, dann nutzt Du ja nicht INNODB und die fehlende Einstellung innodb_large_prefix = 1 ist dann völlig egal.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  19. #19
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.078
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Liegts an utf8mb4? Braucht ja bei gleicher Länge mehr Bytes als utf8. Obwohl, 768*4 Bytes sind eigentlich genau die 3072 Bytes, was ja angeblich die maximale Länge des Keys sein soll.

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

    Standard

    Zitat Zitat von kubjo Beitrag anzeigen
    ich lehne mich jetzt mal aus dem Fenster und sage, dass es daran eigentlich nicht liegen kann.
    Poste die Ausgabe von
    Code:
    SHOW VARIABLES LIKE 'innodb_large_prefix';
    » sponsor me via GitHub or PayPal or Revolut

  21. #21
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Sorry, für die Verzögerung!

    Da mußt Du mir helfen, wo soll ich das eingeben?

    Grüße
    JK
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Das ist ein SQL Query. Also mit deinem Datenbank-Tool deiner Wahl, in der betroffenen Datenbank.
    » sponsor me via GitHub or PayPal or Revolut

  23. #23
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Zitat Zitat von mlweb Beitrag anzeigen
    Sind ja sicher nicht alles die gleichen Installationen.

    Außerdem, wenn Du für Deine anderen Installationen über die config.yml auch noch auf myISAM eingestellt hast, dann nutzt Du ja nicht INNODB und die fehlende Einstellung innodb_large_prefix = 1 ist dann völlig egal.
    Hallo mweb,

    soweit ich das sehe, ist dieser Eintrag "myISAM" wirklich nur in diser Installation vorhanden. Wie komme ich denn da zurück?

    Grüße
    JK
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Zitat Zitat von kubjo Beitrag anzeigen
    Hallo mweb,

    soweit ich das sehe, ist dieser Eintrag "myISAM" wirklich nur in diser Installation vorhanden. Wie komme ich denn da zurück?

    Grüße
    JK
    Code:
                        engine: MyISAM
    aus deiner config.yaml entfernen.
    » sponsor me via GitHub or PayPal or Revolut

  25. #25
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Das ist ein SQL Query. Also mit deinem Datenbank-Tool deiner Wahl, in der betroffenen Datenbank.

    Hab es geschafft, ohne Rückfrage!!!

    134.119.45.1/ https://xxx.php
    Ihr SQL-Befehl wurde erfolgreich ausgeführt.

    SHOW VARIABLES LIKE 'innodb_large_prefix'


    innodb_large_prefix ON


    Ist das OK?

    Grüße
    JK
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

  26. #26
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    So, jetzt bin ich weiter gekommen!
    Ich habe meine alte config.yml wieder hergestellt und nur " engine: MyISAM" raus gelöscht!
    Jetzt lief das installtool durch und keine Einträge sind übrig geblieben!

    Warum das " engine: MyISAM" drin war, daran kann ich mich nicht erinnern!


    Vielen DANK an alle, die mir hier geholfen haben!!!



    Grüße
    JK
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Vermutlich weil es so im Handbuch steht. Wir werden das aber entfernen: https://github.com/contao/docs/pull/910
    » sponsor me via GitHub or PayPal or Revolut

  28. #28
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    So, bei der letzten Installation habe ich wieder ein ähnliches Verhalten:

    Installtool will folgende Tabellen ändern:


    Code:
    Tabellen ändern
    	Alle auswählen
    DROP INDEX pid ON tl_search_index
    
    ALTER TABLE tl_search_index CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci
    nach "Datenbank aktualisieren" erscheint das hier:

    Code:
    Tabellen ändern
    	Alle auswählen
    
    ALTER TABLE tl_search_index CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci
    
    Spalten anlegen
    	Alle auswählen
    
    CREATE INDEX pid ON tl_search_index (pid)
    das Ganze immer im Wechsel.

    Meine config.yml sieht so aus:

    Code:
    doctrine:
        dbal:
            connections:
                default:
                    default_table_options:
                        charset: utf8
                        collate: utf8_unicode_ci
                    options:
                        1002: "SET SESSION sql_mode=(SELECT CONCAT(@@sql_mode, ',TRADITIONAL'))"
    Ich glaube mich zu erinnern, dass ich das schon mal hatte, erinnere mich aber nicht an die Lösung!

    Grüße
    JK
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

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

    Standard

    Welche Contao Version genau?
    » sponsor me via GitHub or PayPal or Revolut

  30. #30
    Alter Contao-Hase Avatar von kubjo
    Registriert seit
    11.01.2011.
    Ort
    Ludwigsburg
    Beiträge
    1.380

    Standard

    4.12.5
    Wir sind alle Würmchen, nur glaube ich, daß ich ein Glühwürmchen bin.

  31. #31
    Contao-Nutzer
    Registriert seit
    21.04.2022.
    Beiträge
    1

    Standard 1071 Specified key was too long - / - filesize DOUBLE PRECISION DEFAULT '0' NOT NULL

    Hallo zusammen, das ist mein erster Post im Forum. Ich hatte bei der Neu-Installation von Contao 4.13 ebenfalls derartige Probleme,
    welche ich aber gottseidank lösen konnte. Ich will euch die Lösung nicht vorenthalten:

    Konkret handelte es sich um folgende Fehlermeldungen im log:

    1071 Specified key was too long
    und
    filesize DOUBLE PRECISION DEFAULT '0' NOT NULL

    Beides liegt wohl an einer zu niedrigen MySQL-Version. Da ich einen Managed-Root-Server betreibe, werde ich das Problem mal meinem Server-Betreiber schildern.
    Evtl. installiert er mir ne höhere MySQL-Version. Trotzdem konnte ich das Problem vorerst lösen:

    --------------
    Ich habe testweise alle SQL-CreateTable-Anweisungen, die bei der Datenbank-Aktualisierung gemacht werden, manuell per phpMyAdmin ausgeführt.
    Dort lies sich das Problem gut auf den "CREATE TABLE tl_search"-Block eingrenzen.

    Problem 1 ist "url VARCHAR(2048) DEFAULT" im "CREATE TABLE tl_search"-Block. Dies verursacht den Fehler "1071 Specified key was too long" und muss geändert werden in "url VARCHAR(767) DEFAULT".
    Problem 2 ist "filesize DOUBLE PRECISION DEFAULT '0'" im "CREATE TABLE tl_search"-Block. Dies muss geändert werden in "filesize DOUBLE DEFAULT '0'".

    zu Problem 1: Möglicherweise entstehen irgendwann Probleme, wenn Contao versucht, einen URL-Key zu speichern, der länger als 767 Zeichen ist. Also erstmal schauen, wie lange das gut geht.
    zu Problem 2: Laut https://www.w3resource.com/mysql/mysql-data-types.php ist DOUBLE ein Synonym für DOUBLE PRECISION; das sollte also problemlos gehen

    Praktisch umgesetzt hab ich das dann so, dass ich im Install-Tool nur den Haken beim "CREATE TABLE tl_search"-Block entfernt hab.
    Dann läuft die Installation der Datenbank-Tabellen problemlos durch.
    Den wie oben beschrieben angepassten "CREATE TABLE tl_search"-Block hab ich dann nach Abschluss der Installation der Datenbank-Tabellen per phpMyAdmin manuell ausgeführt.
    ---------------

    Das war es erstmal von mir - probiert es ruhig einmal aus.
    Sollte ich irgendwas Gravierendes übersehen haben, so zögert nicht damit, es richtig zu stellen.

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
  •