Fehler bei Ausführung der Medienbereinigung im Cron ( Illegal mix of collations )

Anscheinend stimmt was mit der Datenbank nicht.  Gibt es ein Skript, ein Tool dass die DB überprüft und die Einstellungen korrekt setzt? 

 

Ups! Ein Fehler ist aufgetreten!

Die nachfolgenden Hinweise sollten Ihnen weiterhelfen.

An exception occurred while executing ‚INSERT INTO s_media_used SELECT DISTINCT NULL, m.id FROM s_media m INNER JOIN s_emotion_element_value ON s_emotion_element_value.value = m.path‘: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation ‚=‘ in vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php on line 119

Stack trace:

#0 vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1027): Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(PDOException), ‚INSERT INTO s_m…‘) #1 engine/Shopware/Bundle/MediaBundle/GarbageCollector.php(241): Doctrine\DBAL\Connection->exec(‚INSERT INTO s_m…‘) #2 engine/Shopware/Bundle/MediaBundle/GarbageCollector.php(139): Shopware\Bundle\MediaBundle\GarbageCollector->handleTable(Object(Shopware\Bundle\MediaBundle\Struct\MediaPosition)) #3 engine/Shopware/Bundle/MediaBundle/GarbageCollector.php(83): Shopware\Bundle\MediaBundle\GarbageCollector->find(Object(Shopware\Bundle\MediaBundle\Struct\MediaPosition)) #4 engine/Shopware/Bundle/MediaBundle/Subscriber/ServiceSubscriber.php(129): Shopware\Bundle\MediaBundle\GarbageCollector->run() #5 [internal function]: Shopware\Bundle\MediaBundle\Subscriber\ServiceSubscriber->runCronjob(Object(Shopware_Components_Cron_CronJob)) #6 engine/Library/Enlight/Event/Handler/Default.php(91): call_user_func(Array, Object(Shopware_Components_Cron_CronJob)) #7 engine/Library/Enlight/Event/EventManager.php(251): Enlight_Event_Handler_Default->execute(Object(Shopware_Components_Cron_CronJob)) #8 engine/Library/Enlight/Components/Cron/Manager.php(258): Enlight_Event_EventManager->notifyUntil(‚Shopware_CronJo…‘, Object(Shopware_Components_Cron_CronJob)) #9 engine/Shopware/Plugins/Default/Core/Cron/Cron.php(52): Enlight_Components_Cron_Manager->runJob(Object(Enlight_Components_Cron_Job)) #10 engine/Library/Enlight/Controller/Action.php(159): Shopware_Controllers_Backend_Cron->indexAction() #11 engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch(‚indexAction‘) #12 engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #13 engine/Shopware/Kernel.php(177): Enlight_Controller_Front->dispatch() #14 vendor/symfony/http-kernel/HttpCache/HttpCache.php(487): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #15 engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #16 vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) #17 engine/Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) #18 shopware.php(113): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #19 {main}

 

Du müsstest manuell die Coallations prüfen. Da gibt es kein Script zu.

Deine Tabellen verwenden utf8_general_ci und utf8_unicode_ci - dies müsstest Du vereinheitlichen --> google

Alle Tabellen sind auf  utf_unicode_ci … 

ja offensichtlich nicht, sonst gäbe es die Meldung nicht.

Bevor jemand auf die Idee kommt, alle Tabellen einzeln zu überarbeiten: 

Das hat geholfen

 

<?php
// Datenbankverbindung mysql\_connect("localhost","Benutzer","Passwort"); mysql\_select\_db("Datenbank);   // Konvertieren $res = mysql\_query("SHOW TABLES"); while ($row = mysql\_fetch\_array($res)) {     foreach ($row as $key =\> $table)     {         mysql\_query("ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE unicode\_ci");         echo $key . " =\> " . $table . " wurde umgewandelt ";     } } ?\> 
1 „Gefällt mir“

nice

Ja da waren noch ein paar Tabellen die falsch definiert waren. Ich habe jetzt alle konvertiert, hoffe dass es keine Probleme bei den Plugins verursacht.