Magento 2 – you need (at least one of) the SUPER privilege(s) for this operation
Häufig wird bei der Installation oder der Migration einer Magento 2 Datenbank folgender Fehler ausgeworfen.
ERROR 1227 (42000) at line 123456: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
Um diese Fehlerprüfung zu umgehen, sucht nachfolgende Datei.
/setup/src/Magento/Setup/ValidatorDbValidator.php
Kommentiert nachfolgende Zeilen aus.
// check global privileges
// phpcs:ignore Magento2.SQL.RawQuery
$userPrivilegesQuery = "SELECT PRIVILEGE_TYPE FROM USER_PRIVILEGES "
. "WHERE REPLACE(GRANTEE, '\'', '') = current_user()";
$grantInfo = $connection->query($userPrivilegesQuery)->fetchAll(\PDO::FETCH_NUM);
if (empty(array_diff($requiredPrivileges, $this->parseGrantInfo($grantInfo)))) {
return true;
}
// check database privileges
// phpcs:ignore Magento2.SQL.RawQuery
$schemaPrivilegesQuery = "SELECT PRIVILEGE_TYPE FROM SCHEMA_PRIVILEGES " .
"WHERE '$dbName' LIKE TABLE_SCHEMA AND REPLACE(GRANTEE, '\'', '') = current_user()";
$grantInfo = $connection->query($schemaPrivilegesQuery)->fetchAll(\PDO::FETCH_NUM);
if (empty(array_diff($requiredPrivileges, $this->parseGrantInfo($grantInfo)))) {
return true;
}
$errorMessage = 'Database user does not have enough privileges. Please make sure '
. implode(', ', $requiredPrivileges) . " privileges are granted to database '{$dbName}'.";
throw new \Magento\Setup\Exception($errorMessage);
Wenn ihr dies via SSH importiert und weiterhin den Fehler erhaltet, kommentiert die Zeile aus.
sed 's/\sDEFINER=`[^`]*`@`[^`]*`//g' -i [DATEINAME].sql

