Project

General

Profile

Actions

Bug #102664

open

Unneeded/misleading check for character_set_server on MySQL-based databases

Added by S P 11 months ago. Updated 7 months ago.

Status:
New
Priority:
Should have
Assignee:
Category:
Install Tool
Target version:
-
Start date:
2023-12-13
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
12
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

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).

Actions

Also available in: Atom PDF