Drupal 7 utf8mb4支持:“请转换表格”警告.. .转换表格后

问题描述 投票:2回答:2

我在Drush中看到的完整错误是:

在settings.php中启用之前,请将所有数据库表转换为utf8mb4。有关更多信息,请参阅有关添加[警告] 4字节UTF-8支持的文档。 (目前使用数据库4字节UTF-8支持已启用,但数据库表需要转换)

我正在使用最新版本的Drupal 7.我已将所有表转换为utf8mb4_unicode_ci。我首先手动通过提示,但随后在表和字段上使用phpMyAdmin再次运行更新(只是为了确保,因为Drush仍在告诉我“请在settings.php中启用它之前将所有数据库表转换为utf8mb4 。“)所有表都设置为InnoDB。

在my.cnf文件中,我确保我已经拥有了

[mysqld] innodb_large_prefix=true innodb_file_format=barracuda innodb_file_per_table=true

同一服务器上的另一个站点启用了utf8mb4支持,并没有抛出错误。这两个站点都使用最新版本的PHP 5.6.x. Drush版本是8.1.2。 MySql是5.5.x的最新版本。

我通过drush cc all清除了所有Drupal缓存并重新启动了MySQL服务器。该设置在Ubuntu下与Plesk一起使用。

寻找关于我可能错过的想法,以及为什么Drupal要求我转换看起来像已被转换的表格(phpMyAdmin确实将整理显示为utf8mb4_unicode_ci。)

drupal-7 utf8mb4
2个回答
1
投票

Pleasse看到https://www.drupal.org/forum/support/upgrading-drupal/2018-04-03/upgrade-to-758-database-utf-8-issues#comment-12968331。此消息不是来自深层sql分析,而是取决于布尔变量drupal_all_databases_are_utf8mb4的值。无论你是手动还是推荐的drush脚本(TRUE)(我认为)都会为你设置这个变量,这个变量需要在表格转换后设置为https://www.drupal.org/project/utf8mb4_convert

-Bronius


0
投票

你在settings.php有整理和字符集吗?

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'databasename',
  'username' => 'username',
  'password' => 'password',
  'host' => 'localhost',
  'charset' => 'utf8mb4',
  'collation' => 'utf8mb4_general_ci',
);
© www.soinside.com 2019 - 2024. All rights reserved.