簡體   English   中英

數據庫排序規則不匹配 - Typo3 從 7.x 升級到 10.x

[英]Database collations mismatch - Typo3 Upgrade from 7.x to 10.x

我真的被 TYPO3 從 7 升級到 10 期間發生的一些問題困住了。日志中顯示以下錯誤,因此,我無法在后端執行任何操作。

Core: Exception handler (WEB): Uncaught TYPO3 Exception: An exception occurred while executing 'DELETE tags2, cache1 FROM cache_hash_tags AS tags1 JOIN cache_hash_tags AS tags2 ON tags1.identifier = tags2.identifier JOIN cache_hash AS cache1 ON tags1.identifier = cache1.identifier WHERE tags1.tag IN ('pageId_1','sys_template','sys_template_1')': Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=' | Doctrine\DBAL\Exception\DriverException thrown in file /html/typo3/typo3_src-10.4.21/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php in line 110.

我發現在 DB 中使用了不同的排序規則,我認為這將是錯誤的原因。

數據庫映像

我的問題是,我們可以更改整個數據庫、表和表字段的排序規則和字符集嗎?

謝謝

這不是 TYPO3 的問題。 它是由更改數據庫的默認設置引起的。

正如您將看到的, ext_tables.sql不包含有關應使用哪種排序規則的任何信息。 這是您/您的系統管理員的選擇。

回到你的問題。 “我們可以更改整個數據庫、表和表字段的排序規則和字符集嗎?”:這取決於;-)

更改現有表的排序規則是可能的,但可能會導致存儲數據出現問題。

  • 對於存儲臨時數據的表(如緩存表),截斷表和更改排序規則應該是無害的。 (或者可能更快:刪除它們並進行“數據庫比較”)
  • 對於存儲內容的表,您應該檢查更改排序規則是否兼容。

您談到 utf8_general_ci 和 utf8_unicode_ci 之間的排序規則不匹配。 兩者基本上只在查詢結果的默認排序上有所不同。 存儲在表中的數據是相同的。

您的屏幕截圖讓我假設您可以訪問 phpMyAdmin。 要使用 phpMyAdmin、select 更改表的排序規則,然后打開“操作”選項卡。 您將找到一個 select 字段來選擇所需的排序規則。 更改並保存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM