Какой пароль по умолчанию на docker контейнере mysql -сервере, если вы его не устанавливали? - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь запустить контейнер mysql и подключиться к mysql клиенту, затем:

Я использовал следующие команды:

docker run --name=mysql -d mysql/mysql-server:latest
docker exec -it mysql mysql -uroot -p

Согласно руководству , последняя команда позволяет мне настроить пароль базы данных, но когда я ввожу первый пароль, это не удается ...

enter image description here

Первый пароль был root, и я получаю необычную ошибку, затем я пытаюсь использовать admin, admin и даже свой linux пароль пользователя, но они не работают ...

Я хотел бы знать, в чем ошибка?

Ответы [ 3 ]

1 голос
/ 28 мая 2020

Следуя документации: https://dev.mysql.com/doc/refman/8.0/en/docker-mysql-getting-started.html

Вы получаете пароль с помощью команды:

docker logs mysql 2>&1 | grep GENERATED

Пример вывода:

GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis&EShOs
1 голос
/ 29 мая 2020

Есть несколько способов увидеть пароль. Первый подход - не запускать контейнер в режиме демона

Проверьте команду ниже

docker run --name=mysql mysql/mysql-server:latest

, и это напечатает пароль в терминале, как показано ниже журналы

2020-05-28T23:41:01.418347Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock'
2020-05-28T23:41:01.666070Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-05-28T23:41:01.714420Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.20'  socket: '/var/lib/mysql/mysql.sock'  port: 0  MySQL Community 
Server - GPL.
Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
[Entrypoint] GENERATED ROOT PASSWORD: PopiKQIjAS#OGj3x]yJOBLEn80p
[Entrypoint] ignoring /docker-entrypoint-initdb.d/*
2020-05-28T23:41:06.208480Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.20).
2020-05-28T23:41:07.861667Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.20)  MySQL Community Server - GPL.
[Entrypoint] Server shut down
[Entrypoint] Setting root user as expired. Password will need to be changed before database can be used.
[Entrypoint] MySQL init process done. Ready for start up.
[Entrypoint] Starting MySQL 8.0.20-1.1.16
2020-05-28T23:41:08.534785Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.20) starting as process 1
2020-05-28T23:41:08.549216Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-05-28T23:41:09.135591Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-05-28T23:41:09.369412Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
2020-05-28T23:41:09.448584Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-05-28T23:41:09.500464Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.20'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Communi
ty Server - GPL.

Второй подход - запустить контейнер в режиме демона и получить пароль из журналов Проверьте команду ниже, чтобы запустить контейнер

docker run -d --name=mysql mysql/mysql-server:latest

, а затем запустите приведенная ниже команда для получения пароля

docker logs mysql1 2>&1 | grep GENERATED

Результат выполнения указанной выше команды:

[Entrypoint] GENERATED ROOT PASSWORD: PopiKQIjAS#OGj3x]yJOBLEn80p

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

docker exec -it mysql mysql -uroot -p

При появлении запроса введите сгенерированный пароль root (см. инструкции выше, как его найти). Поскольку параметр MYSQL_ONETIME_PASSWORD по умолчанию истинен, после подключения клиента mysql к серверу необходимо сбросить пароль root сервера, выполнив следующий оператор:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

Substitute password с паролем по вашему выбору. После сброса пароля сервер готов к работе.

Ссылка: https://hub.docker.com/r/mysql/mysql-server/

0 голосов
/ 28 мая 2020

Пароль по умолчанию отсутствует, попробуйте войти, используя:

sudo docker exec -it mysql mysql -u root
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...