Bug #102664
openUnneeded/misleading check for character_set_server on MySQL-based databases
0%
Description
The core checks for character_set_server
and throws a notice (e.g. in the Environment Status) if it is not one of the utf8 ones, see TYPO3\CMS\Install\SystemEnvironment\DatabaseCheck\Platform\MySql
. This check is existing for at least TYPO3 10, 11 and 12, but I think it was in there "forever".
character_set_server
, however, is the SQL service's global fallback value if no other value is ever specified when creating a specific Database (but there is character_set_client
and character_set_connection
and character_set_system
even).
So this check is misleading. For TYPO3 only the actually persisted character_set_database
variable is relevant (the charset of the actually used Database). This value checked as well already.
Imagine this situations:
1) You have 10 Databases, 9 are non-TYPO3-related and need some specific non-utf8-charset. Only the last one is a TYPO3 database which correctly has a utf8-based charset and collation. Then it is meaningful to have the most common charset as the server default.
2) If you have no root server (which is most common) you often can not change these system-wide settings at all.
Why should TYPO3 care about what is happening outside its own relevant environment?
I think this environment check should be dropped without replacement, because it can only cause confusion, is arbirtary (why not character_set_system
or character_set_connection
?), often not be changed anyways and is irrelevant if the Database itself is consistent (which is checked as well, and the whole DBAL layer ensures this anyways nowadays).