Próbuję skonfigurować kontener nodejs, aby połączyć się z bazą danych mysql.Docker host mysql nieuprzywilejowany
Mój kod wygląda następująco:
var pool = mysql.createPool({
host : 'mysql',
port : '3306',
user : 'root',
password : '...',
database : 'general',
connectionLimit : 50,
queueLimit : 5000
});
używam standardowego mysql pojemnik.
Używam rys. Do otwierania pojemników. fig.yml wygląda mniej więcej tak:
node:
build: node
ports:
- "9000:9000"
- "9001:9001"
links:
- mysql:mysql
command: node server/Main.js
mysql:
image: mysql
volumes:
- /data/test:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ...
każdym razem staram się łączyć pojawia się następujący błąd:
failed to connect to database: Error: ER_HOST_NOT_PRIVILEGED: Host '172.17.0.142' is not allowed to connect to this MySQL server
Każdy pomysł co robię źle? Grałem z wordpress i wydaje się, że łączy się z tym samym mysql db bez żadnych problemów.
Thx!
Edytuj Tak więc znalazłem odpowiedź na końcu. Problem był rzeczywiście kwestią uprzywilejowaną. Uruchomiłem następujące polecenie:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'
Udało mi się uzyskać dostęp do bazy danych.
Czy [to może pomóc] (http://stackoverflow.com/questions/19943615/connect-to-remote-mysql-database)? A może [to] (http://stackoverflow.com/questions/1559955/host-xxx-xx-xxx-xxx-is-not-ileded-to-connect-to-this-mysql-server)? – wassgren
Jaka jest twoja wersja mysql? 'Ogólne' jest zastrzeżonym słowem w mysql 5.6, użyj wstecznego tyknięcia w twojej puli – Mihai
@wassgren Nie sądzę, że jest to problem z uprawnieniami do grantu, ponieważ wordpress łączy się z tą samą bazą danych bez dodatkowych uprawnień – Petru