protected function checkEnvironment()
	{
		if( version_compare( TYPO3_version, '9.0', '<' ) ) {
			return;
		}

		$objectManager = GeneralUtility::makeInstance( ObjectManager::class );
		$connectionPool = $objectManager->get( TYPO3\CMS\Core\Database\ConnectionPool::class );
		$connection = $connectionPool->getQueryBuilderForTable( 'fe_user' )->getConnection();
		$params = $connection->getParams();

		if( strpos( $connection->getServerVersion(), 'MySQL' ) === false ) {
			return;
		}

		// MariaDB might get identified as a 'MySQL 5.5.5' for some reason
		$result = $connection->prepare('SELECT version()');
		$result->execute();
		$rows = $result->fetchAll();

		if( !isset( $rows[0]['version()'] ) ) {
			return;
		}

		$version = $rows[0]['version()']; // Something like '10.1.29-MariaDB' or '5.6.33-0ubuntu0'

		// Only MySQL < 5.7 and MariaDB < 10.2 don't work
		if( ( strpos( $version, 'MariaDB' ) !== false && version_compare( $version, '10.2', '>=' ) )
			|| version_compare( $version, '5.7', '>=' )
		) {
			return;
		}

		// MySQL < 5.7 and utf8mb4 charset doesn't work due to missing long index support
		if( isset( $params['tableoptions']['charset'] ) && $params['tableoptions']['charset'] !== 'utf8mb4' ) {
			return;
		}

		// Retrieve the name of the connection (which is not part of the connection class)
		foreach ( $connectionPool->getConnectionNames() as $name )
		{
			if( $connectionPool->getConnectionByName( $name ) === $connection ) {
				break;
			}
		}

		$msg = $objectManager->get(
			FlashMessage::class,
			LocalizationUtility::translate( 'LLL:EXT:aimeos/Resources/Private/Language/admin.xlf:t3_9x_config_error_text', 'aimeos', [$name] ),
			LocalizationUtility::translate( 'LLL:EXT:aimeos/Resources/Private/Language/admin.xlf:t3_9x_config_error_header' ),
			FlashMessage::ERROR
		);

		return $objectManager->get( FlashMessageRendererResolver::class )->resolve()->render( [$msg] ) .
			LocalizationUtility::translate( 'LLL:EXT:aimeos/Resources/Private/Language/admin.xlf:t3_9x_config_error_remedy' );
	}