Подключение Cygwin к MySQL: невозможно подключиться к локальному серверу MySQL через сокет '/var/run/mysql.sock'
Я только что установил MySQL 5.5.27 на WinXP. Когда я открываю командную строку (Пуск → Выполнить и введите "cmd" ), я могу получить доступ к MySQL, запустив "mysql -u root -p". Однако, когда я открываю терминал Cygwin и пытаюсь сделать то же самое, я получаю эту ошибку
$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql.sock' (2)
В самом деле, файл "/var/run/mysql.sock" отсутствует.
Ответы
Ответ 1
Если вы укажете хост в командной строке, эта проблема должна исчезнуть:
mysql -u root -p -h 127.0.0.1
Вы также можете создать my.ini
, который будет использовать mysql:
echo [client] >c:\my.ini
echo user=root >>c:\my.ini
echo host=127.0.0.1 >>c:\my.ini
Затем вы можете просто ввести:
mysql -p
Вы даже можете добавить пароль:
echo password="abracadabra" >>c:\my.ini
Затем просто введите:
mysql
и вы находитесь!
См. также https://serverfault.com/questions/337818/how-to-force-mysql-to-connect-by-tcp-instead-of-a-unix-socket
Ответ 2
Попробуйте добавить это в свою команду:
-h 127.0.0.1
Проблема заключается в том, что хост клиента mysql по умолчанию - localhost, и он обрабатывает localhost специально, используя сокет unix, доступ к которому осуществляется через этот файл, но ваш сервер не может быть настроен на прослушивание в unix-сокете.
Однако, если вы обращаетесь к одному серверу через loopback IP 127.0.0.1, он будет использовать TCP-сокет вместо unix-сокета и (при условии, что сервер подключен к сети), он должен работать.
Ответ 3
Просто, чтобы сэкономить несколько keystorkes,
Добавьте следующий псевдоним в ваш файл ~/.bashrc.
alias mysql='mysql -u root -h 127.0.0.1'
После добавления этого параметра вы можете просто набрать "mysql" в своем терминале, и там вы перейдете прямо в mysql.
Ответ 4
Как и большинство упомянутых здесь людей, одним из решений будет использование псевдонимов. Не нравится, чтобы они были честными, потому что они мешают мне изучать некоторые действительно приятные команды Linux:) Это просто шутка. Но лучший способ для вас, как я думаю, - найти файл ~/.bashrc
, расположенный в вашем домашнем каталоге, и поместить туда:
alias mysql="mysql -h 127.0.0.1"
Не забывайте, что вам нужно перезапустить сеанс, чтобы это решение работало, или вы можете набрать команду bash
на том же сеансе терминала - он перезагрузит все ваши настройки bash. Удачи!
P.S. Я предлагаю вам закрыть все остальные окна терминала перед редактированием .bashrc
, потому что вы можете просто получить файл только для чтения. У меня была такая проблема под Win7x64
Ответ 5
Я успешно установил MySQL в Cygwin на своем ПК в соответствии с Рафаэлем Хартом. Я создал базу данных и выполнил несколько запросов, и все отлично поработало.
На следующий день, когда я попытался войти в MySQL, я получил ошибку:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql.sock' (111 "Connection refused")
По-видимому, когда вы завершаете работу своего ПК, службы также завершаются и не перезапускаются при загрузке.
Чтобы устранить проблему, я набрал следующую команду для перезапуска службы mysqld:
$ mysqld_safe &
Затем все начало работать.
Ответ 6
Здесь, как запустить MYSQL
из cygwin
Перейдите сюда:
https://cygwin.rafaelhart.com/setting-up-mysql-on-cygwin/
Для запуска MYSQL
выполните следующие действия:
mysql_install_db
Запустите mysql - вы получите предупреждение о брандмауэре из окон, если оно у вас активно.
mysqld_safe
и сразу же после этого было бы разумно запустить следующее:
mysql_secure_installation