Подключитесь к MySQL контейнеру с хоста с помощью командной строки - PullRequest
0 голосов
/ 21 марта 2019

Я запустил экземпляр Mysql в Docker, введя команду docker run -d -p 3306:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD=supersecret some-mysql. Но когда я пытаюсь войти в систему как пользователь root, введя команду mysql -u root -p и предоставив пароль суперскретный. Я получаю сообщение об ошибке ниже.

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Я предполагаю, что вы выполняете mysql -u root -p с самого хоста, а не внутри контейнера.

Поэтому, исходя из моего предположения, у контейнера нет mysql.sock внутри самого хоста, когда вы его запускаете, поэтому вам нужно изменить протокол по умолчанию.

Эта команда будет подключаться через tcp вместо сокета

mysql --protocol=tcp -u root -p
0 голосов
/ 21 марта 2019

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

docker run -d -p 3306:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD=supersecret mysql:latest

docker exec -ti some-mysql mysql -u root -p

Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.15 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...