Mysql
 sql >> Datenbank >  >> RDS >> Mysql

ER_HOST_NOT_PRIVILEGED - Docker-Container kann keine Verbindung zu Mariadb herstellen

Der Fehler, den Sie erhalten, wird durch die Tatsache verursacht, dass MariaDB glaubt, dass Sie nicht berechtigt sind, sich mit dem Server zu verbinden. Das bedeutet, dass Sie keinen Datenbankbenutzer für die Node.js-App erstellt haben oder die Berechtigungen für diesen Benutzer falsch sind.

Ein narrensicherer Weg, dies zu lösen, besteht darin, einen separaten Benutzer für die Node.js-Anwendung zu erstellen. Sie können dies automatisieren, indem Sie die folgende SQL in eine Datei schreiben und das Volume in /docker-entrypoint-initdb.d mounten .

CREATE USER 'my-app-user'@'%' IDENTIFIED BY 'my-app-password';
GRANT ALL ON *.* TO 'my-app-user'@'%';

Ändern Sie den Benutzernamen und das Passwort entsprechend und reduzieren Sie die gegebenen Privilegien von ALL Privileg. Sie können auch den Wildcard-Hostnamen % ändern an eine bestimmte IP-Adresse oder einen Hostnamen.