При попытке подключиться к базе данных MySQL, работающей на порту 3306 на локальном хосте (с помощью инструмента командной строки mysql
), Я получаю сообщение об ошибке:
ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/tmp/mysql.sock' (2)
Вот команда, которую я использую:
> mysql -h localhost -P 3306
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Также не работает указание пользователя и пароля:
> mysql -h localhost -P 3306 -u dbuser -p
Password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Почему он пытается использовать файл сокета UNIX (как, кажется, здесь), когда я указываю хост и порт?
Вам нужно использовать 127.0.0.1
вместо того localhost
:
> mysql -h 127.0.0.1 -P 3306
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8347701
Server version: 5.6.35-80.0-log Percona Server (GPL), Release 80.0,
Revision f113994f31
...
Ты в!
Клиент MySQL выводит протокол из предоставленного хоста.
Для данного соединения, если транспортный протокол не указан явно, он определяется неявно. Например, соединения с localhost приводят к соединению файла сокета в Unix и Unix-подобных системах, а в противном случае - к соединению TCP / IP с 127.0.0.1.
Источник: Документы MySQL
Чтобы избежать этого, вы можете указать протокол сами:
> mysql -h localhost -P 3306 --protocol TCP
Вы должны иметь возможность войти в систему: D.