Выпуск
Я не могу подключиться к MySQL с хоста, с которого запущен контейнер MariaDB. Вот некоторые сведения об окружающей среде:
docker compose
-file
version: '3.1'
services:
db:
image: mariadb
restart: always
environment:
BIND-ADDRESS: 0.0.0.0
MYSQL_ROOT_PASSWORD: example
ports:
- 3306:3006
adminer:
image: adminer
restart: always
ports:
- 8080:8080
Соединение с контейнером через docker exec -it rancherclientplatform_db_1 /bin/bash
и соединение с mysql -uroot -p
неудивительно, что работает.
ГРАНТЫ
Гранты следующие:
MariaDB [(none)]> SHOW GRANTS;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost
|
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*57237BB49761F29AB9724BA084E811D70C12393D' WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
+----------------------------------------------------------------------------------------------------------------------------------------+
На хосте
Нет, когда я пытаюсь подключиться на хосте , ни
mysql -uroot -p
или
mysql -hlocalhost -uroot -p
или
mysql -h127.0.0.1 -uroot -p
работа. Первые 2 завершаются с ошибкой сокета, -h127.0.0.1
завершается с ошибкой
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 "Internal error/check (Not system error)"
Сам порт 3306
, похоже, правильно опубликован на хосте, так как
nmap -p3306 localhost
доставляет
PORT STATE SERVICE
3306/tcp open mysql
Есть идеи, что делать здесь?