Как подключиться к MySQL, созданному с помощью docker, к другому порту (не к порту 3306)? - PullRequest
0 голосов
/ 23 февраля 2020

Я уже установил mySql на свой p c, поэтому порт 3306 уже занят. По этой причине я должен использовать порт, отличный от 3306. Я хочу иметь возможность подключаться с моей машиной к моему экземпляру docekr без использования команд docker, поэтому я смогу подключиться к этому экземпляру с моим приложением (Spring веб-приложение).

Docker команды, которые я использовал:

docker run --name jt-mysql -e MYSQL_ROOT_PASSWORD=password -p 3307:3307 -d mysql

Затем я попытался подключиться к этому istance с помощью:

mysql --user=root -P 3307 -p

В этом случае я получить следующую ошибку:

ОШИБКА 1045 (28000): доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: ДА)

Обратите внимание что, если я попытался использовать экземпляр, установленный на моем p c, он работает, используя:

mysql --user=root -P 3306 -p

Другая информация о моем docker экземпляре, используя:

docker ps

I получить:

f52a94aa63da mysql "docker -entrypoint.s…" 4 минуты a go до 4 минут 3306 / tcp, 33060 / tcp, 0.0.0.0:3307->3307 / tcp jt- mysql

с указанием статуса моего docker изображения (ввод с помощью команд docker) Я получаю:

Connection id:      11
Current database:   
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     8.0.19 MySQL Community Server - GPL
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:        /var/run/mysqld/mysqld.sock
Binary data as:     Hexadecimal
Uptime:         16 min 50 sec

с помощью env com манд:

HOSTNAME=f52a94aa63da
MYSQL_ROOT_PASSWORD=password
PWD=/
HOME=/root
MYSQL_MAJOR=8.0
GOSU_VERSION=1.7
MYSQL_VERSION=8.0.19-1debian9
TERM=xterm
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env

Ответы [ 3 ]

2 голосов
/ 23 февраля 2020

Команда для запуска MySQL контейнера на порту 3306 и предоставления доступа на порт 3307

docker container run -d --name=LocalMySQLDB -p 3307:3306 -e MYSQL_ROOT_PASSWORD=password mysql

ИЛИ

docker run -d --name=LocalMySQLDB -p 3307:3306 -e MYSQL_ROOT_PASSWORD=password mysql

Приведенная выше команда для запуска сервера базы данных MySQL внутри " LocalMySQLDB "контейнер

Теперь для подключения к контейнеризованному экземпляру mysql используйте приведенную ниже команду

mysql -h 127.0.0.1 -uroot -P 3307 -ppassword

Я много раз пробовал это на своем локальном компьютере в целях тестирования. Это точно подойдет и вам. Пожалуйста, прокомментируйте, если это не сработает в вашем случае.

0 голосов
/ 23 февраля 2020

Когда вы запускаете docker контейнер, попробуйте добавить этот параметр в конце.

docker run --name jt-mysql -e MYSQL_ROOT_PASSWORD=password -p 3307:3306 -d mysql --network host
0 голосов
/ 23 февраля 2020

Запуск Docker контейнера с помощью следующей команды:

docker run -d -p 3307:3306 --name mysql_server -e MYSQL_ROOT_PASSWORD=123456 mysql

Подключение к контейнеру с хоста с помощью следующей команды:

mysql -u root -P 3307 --protocol=tcp -p 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...