Почему Docker не распознает MySQL?

Я установил Docker и создал контейнер. Теперь пытаюсь войти внутрь контейнера и открыть MySQL, но сталкиваюсь с ошибкой:  
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO).  
  
Команда, с помощью которой я создал контейнер:  
docker run --name igormysql -e MYSQL_ROOT_PASSWORD=as56df -p 3307:3306 -d mysql:8.0.31.  
  
Команда, с помощью которой я пытаюсь войти в контейнер:  
docker exec -it igormysql mysql -U root.  
  
Я пробовал менять пароль и создавать нового пользователя с хостом %.  
Ничего не помогает.  
  
Пожалуйста, объясните, в чем может быть причина проблемы.
  • 27 сентября 2024 г. 9:43
Ответы на вопрос 3
Причина вашей проблемы заключается в том, что при использовании команды `mysql` для входа в контейнер MySQL вы не указываете пароль для пользователя root, а пытаетесь его подключить без пароля.

Команда, которую вы используете для входа в контейнер, должна быть изменена, чтобы указать пароль. Вы можете сделать это следующим образом:

```bash
docker exec -it igormysql mysql -u root -p
```

После ввода этой команды MySQL запросит у вас ввести пароль. Введите `as56df` (это тот пароль, который вы указали при создании контейнера).

Кроме этого, если вы хотите указать пароль прямо в команде, вы можете сделать это так (хотя это может представлять потенциальный риск безопасности, так как пароль будет виден в командной строке):

```bash
docker exec -it igormysql mysql -u root -pas56df
```

Но рекомендую использовать вариант с вводом пароля вручную, чтобы повысить уровень безопасности.

Если после этих изменений проблема все равно не решается, возможны следующие причины:

1. Контейнер MySQL не запущен или был остановлен. Проверьте, работает ли контейнер:

   ```bash
   docker ps
   ```

   Если его нет в списке, запустите контейнер снова:

   ```bash
   docker start igormysql
   ```

2. Другие свои контейнеры могли использовать тот же порт (3306) на хосте. Убедитесь, что у вас нет конфликтов портов.

3. Возможно, был установлен другой MySQL-клиент, который работает с разными учетными данными.

Если вы проверите все вышеперечисленное и корректно введете пароль, то сможете успешно войти в MySQL внутри контейнера.
Ошибку то прочитайте.. он же пишет что Вы не используете пароль, хотя его задали.. там в коменте правильно сказали, надо указать   -p   еще
Access denied for user 'root'@'localhost' (using password: NO)

Это ошибка от самого MySQL, так что всё Docker видит.
Похожие вопросы