Ich versuche, einen Docker-Container für die Arbeit mit Mariadb- und node.js-Images zu erhalten. Der Container wird eine vorhandene Datenbank in /home/mysql
verwenden. Wenn jedoch der Container gestartet wird, ich bin dies immer "nicht bestanden verbinden" Fehler in node.js:ER_HOST_NOT_PRIVILEGED - Docker-Container kann keine Verbindung zu Mariadb herstellen
Error: ER_HOST_NOT_PRIVILEGED:
Host '172.18.0.5' is not allowed to connect to this MariaDB server
Hier ist mein Docker-compose.yml:
version: '3'
services:
mariadb:
image: mariadb
restart: always
volumes:
- /home/mysql:/var/lib/mysql
user: "mysql"
ports:
- "3306:3306"
watch:
build: .
restart: always
links:
- mariadb:mysql
environment:
- DOCKER_IP=172.18.0.2
depends_on: ['mariadb']
ports:
- "3000:3000"
Nach diesen thread Lesen Ich habe festgestellt, dass mysql tatsächlich ausgeführt wird, aber andere Dienste nicht verbinden können:
Dies sind einige der Schritte, die ich überprüft habe. Wie Sie sehen können, kann ich auf die MySQL-Instanz anmelden:
$ docker exec -it 552aae9ea09c bash
[email protected]:/$ mysql -u root -p
Enter password: *******
MariaDB [(none)]> SELECT host, user FROM mysql.user;
+-------------+------------------+
| host | user |
+-------------+------------------+
| 127.0.0.1 | root |
| ::1 | root |
| someusername| |
| someusername| root |
| localhost | |
| localhost | dbusername |
| localhost | databasename |
| localhost | root |
+-------------+------------------+
8 rows in set (0.00 sec)
[email protected]:/$ mysqld --verbose --help | grep bind-address
2017-11-13 17:35:40 139825857279872 [Note] Plugin 'FEEDBACK' is disabled.
--bind-address=name IP address to bind to.
bind-address (No default value)
Eine Sache zu beachten ist, dass, obwohl ich ausdrücklich den Benutzer mysql
in der yml Datei, diese drei Dateien in/home gesetzt haben/mysql: ib_logfile0
, ib_logfile1
sind ib_buffer_pool
noch unter der Gruppe von systemd-journal-remote
, die ich vermute, etwas mit dem Verbindungsfehler zu tun hat (reference)