XF 2.2 Full Unicode support has been enabled in config.php MariaDB 10.6.3

Mr. Jinx

Well-known member
After upgrading PHP to 8.0.9 and MariaDB to 10.6.3, I get this message in ACP:
Code:
Full Unicode support has been enabled in config.php but your database is not set to support this. Full Unicode support should be disabled or errors may occur.

There was no $config['fullUnicode'] in config.php, but even with $config['fullUnicode'] = false; I get this message.
 
Solution
I had exactly the same. Luckely this was in a test environment.
I resolved this by converting to utf8mb4 before upgrading MariaDB.
After that, the upgrade went fine.

Chris D

XenForo developer
Staff member
I can’t account for why the config change didn’t work - if you have an aggressive opcache then changes may not be reflected until later or until PHP is restarted.

Ensure you are editing src/config.php file.

Although having fullUnicode enabled is fine as long as you have run the cmd.php xf:convert-utf8mb4 command.
 

Mr. Jinx

Well-known member
Regarding the config change, I made sure PHP was restarted and all caches flushed, but the message wouldn't go away.
I tried to convert to utf8mb4, but the script says the tables are already OK.
Looked at the tables... collation is set at utf8mb3. Ehhhh I don't know what happened there.

I did a test upgrade from MariaDB 10.4 > 10.6. I'll need some more testing I guess. :rolleyes:
Sorry for reporting this as a bug, this must be indeed a configuration issue on my server.
 

Tangos

Member
same error , when i change to PHP 8.0.11 and 10.6.4-MariaDB

also
Code:
 php cmd.php xf:convert-utf8mb4
No convertable tables found. No action required.

add to config.php $config['fullUnicode'] = false; or delete this string
Full Unicode support has been enabled in config.php but your database is not set to support this. Full Unicode support should be disabled or errors may occur.
this warning does not disappear :(
 

PASS

Well-known member
I can’t account for why the config change didn’t work - if you have an aggressive opcache then changes may not be reflected until later or until PHP is restarted.

Ensure you are editing src/config.php file.

Although having fullUnicode enabled is fine as long as you have run the cmd.php xf:convert-utf8mb4 command.

I tried this cmd and I get "No convertible tables found. No action required message."

All my tables are currently utf8mb3_general_ci
 

Nicky Vermeersch

Active member
I had this issue today as well when upgrading from Ubuntu 20 LTS to 22.
PHP updated to 8.1 and Mariadb updated to 10.6.7.

For some weird reason, the collation of all the tables went to utf8mb3 and running the
Code:
cmd.php xf:convert-utf8mb4
had no effect and returned that no convertable tables were found.

I managed to fix the issue by setting the collation of the entire database to utf8mb4 through phpmyadmin.

  • Select the xenforo database
  • Go to 'Operations'
  • At the Collation, choose utf8mb4_general_ci
  • Select 'Change all tables collations' and 'Change all tables columns collations'.
  • Execute

1659204339576.png
 

PaulB

Well-known member
I can’t account for why the config change didn’t work - if you have an aggressive opcache then changes may not be reflected until later or until PHP is restarted.
\XF\Db\SchemaManager::hasUnicodeMismatch doesn't understand that utf8mb3 and utf8 are the same thing; it doesn't know that utf8mb3 exists.
 

AndyB

Well-known member
I used phpMyAdmin to change the collation and it worked great, I used the steps shown in post #8. Keep in mind that this takes only a few seconds and there's no feedback.
 

PaulB

Well-known member
Correct. Of course I didn’t have that information at the time of the post you quoted.
Yup--I only recently became aware of this change, and it's far from obvious what's happening. Fortunately, it's pretty easy to adjust XenForo in this case.

I used phpMyAdmin to change the collation and it worked great, I used the steps shown in post #8. Keep in mind that this takes only a few seconds and there's no feedback.
Some add-ons may introduce case-sensitive columns, and they will become case-insensitive if you take this approach. You should double check that you don't have any columns with collations other than utf8mb3_general_ci before running that command. If you see utf8_general_ci, this issue doesn't affect you and you should run php cmd.php xf:convert-utf8mb4 or remove the fullUnicode line from your config.php (ideally the former). If you see anything else, it's probably best to wait until xf:convert-utf8mb4 is able to handle utf8mb3, as that's the safest way to ensure nothing breaks. You can safely ignore the error for now if you see utf8mb3_general_ci instead of utf8_general_ci.
 
Top