#mysql #docker-compose
Вопрос:
Мой докер-compose.yaml:
version: '3'
services:
mysql57:
container_name: mysql57
image: mysql:5.7.29
ports:
- "3306:3306"
volumes:
- $HOME/:/var/lib/mysql
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
Мой конфигурационный файл бд:
nemo:
default_cluster: local
default_database: my_local
clusters:
local:
databases:
my_local:
user: me
password: me
host: 127.0.0.1 # localhost works for me
mysql:
mysql> SHOW GRANTS;
---------------------------------------------------------------------
| Grants for me@localhost |
---------------------------------------------------------------------
| GRANT ALL PRIVILEGES ON *.* TO 'me'@'localhost' WITH GRANT OPTION |
| GRANT ALL PRIVILEGES ON `my_local`.* TO 'me'@'localhost' |
| GRANT ALL PRIVILEGES ON `my_config`.* TO 'me'@'localhost' |
---------------------------------------------------------------------
настройка моего MAC:
% cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
# Added by Docker Desktop
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
Я получил ошибку:
{Operation:"get config DB connection", Message:"Database error: Cannot connect to database: Error 1045: Access denied for user 'me'@'localhost' (using password: YES). (init master config for local, my_config)"}
Но если хост в файле конфигурации бд изменен на localhost
, ошибка исчезнет.
Но если хост в файле конфигурации бд изменился на 127.0.0.1
, я вижу вышеуказанную ошибку.
Комментарии:
1. Так что оставьте его включенным
localhost
. В любом случае, это одно и то же — оба разрешаются на один и тот же IP-адрес.