подключение к MySQL из Cygwin - PullRequest
       66

подключение к MySQL из Cygwin

54 голосов
/ 01 декабря 2008

Я могу успешно подключиться к MySQL из командной строки DOS, но когда я пытаюсь подключиться из cygwin, он просто зависает.

$/cygdrive/c/Program\ Files/MySQL/MySQL\ Server\ 5.1/bin/mysql -u root -p

Что не так?

Ответы [ 14 ]

69 голосов
/ 03 апреля 2012

Я только что столкнулся с этим, и когда я прочитал чье-то упоминание о том, что это команда windows / DOS, которую вы запускаете в cygwin, я сделал which mysql, и это дало мне:

$ which mysql
/cygdrive/c/Program Files/MySQL/MySQL Server 5.5/bin/mysql

Итак, я запустил cygwin Setup.exe, искал "mysql" и установил последний "клиент mysql". Теперь which mysql выглядит так:

$ which mysql
/usr/bin/mysql

И команда MySQL работает в cygwin:)

Хотя это старый вопрос, было бы неплохо получить настоящий ответ здесь, поскольку люди (как и я) все еще могут наткнуться на него.

Если ваши попытки запустить клиент MySQL из Cygwin возвращают следующую ошибку:

$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql.sock' (2)

Затем вы можете исправить это, добавив явные опции -h 127.0.0.1 в командную строку, например:

$ mysql -u root -p -h 127.0.0.1

Обновления на основе комментариев:

Чтобы не указывать -h 127.0.0.1 в командной строке при каждом подключении, вы можете добавить:

[client]
host=127.0.0.1

в файл /etc/my.cnf

В некоторых установках Cygwin указание хоста с -h может быть недостаточно. Если это так, попробуйте также указать:

--protocol=tcp

или добавить

protocol=tcp

в файл конфигурации.

17 голосов
/ 01 декабря 2008

Предполагая, что у вас есть встроенная сборка MySQL для Windows, существует несовместимость эмуляции терминала между DOS (командная строка) и bash. Подсказка для mysql не отображается.

Чтобы подтвердить это, введите команду и вернитесь - она, вероятно, будет работать, но подсказка и эхо команды (то, что вы печатаете) теряется.

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

7 голосов
/ 15 июля 2013

В других ответах отсутствует следующая клавиша подробно:

У Cygwin есть две оболочки:

  1. По умолчанию: c:\cygwin\bin\mintty.exe
  2. Basic: c:\cygwin\Cygwin.bat (который запускает c:\cygwin\bin\bash.exe)

Win32 MySQL может правильно записать в # 2, но не # 1, потому что Win32 MySQL не может правильно проверить stdin (спасибо @PeterNore)

Хотите знать, используете ли вы Win32 MySQL? Используйте which, например

$ which mysql
/cygdrive/c/Program Files/MySQL/MySQL Server 5.1/bin/mysql

Бонус : Руководство Cygwin по преодолению проблем на пути ( спасибо @ Дастин )

5 голосов
/ 05 января 2012

Запустите bash из исполняемого файла cmd.exe, и тогда mysql будет работать внутри bash.

  1. Создайте ярлык для cmd.exe на рабочем столе.
  2. Откройте свойства для ярлыка и измените каталог запуска на каталог cygwin bin (обычно C: \ cygwin \ bin).
  3. Добавьте "/ c bash.exe" в конец команды в целевом параметре.

Это запустит bash в среде windows cmd.exe и при попытке запустить mysql будет работать так, как вы ожидаете. Это работает под Windows 7, но не было протестировано ни в одной другой версии.

5 голосов
/ 02 декабря 2008
2 голосов
/ 09 апреля 2012
  1. Поместить каталог bin в cygwin в переменную path env.
  2. Использовать командное окно, запустив cmd
  3. Запустить bash -l в окне cmd

Тогда MySQL может быть запущен без проблем.

1 голос
/ 06 июня 2012

Правдивый ответ Свенда Хансена:

  • Установить файлы сервера Windows MySQL (например, из mysql-5.5.25-win32.msi)

  • Установить клиент Cygwin mysql с установщиком cygwin (setup.exe)

  • Подключитесь к вашему серверу в окне cygwin с помощью клиента cygwin "mysql -u [пользователь] -p [пароль] -h [хост]", в моем случае "mysql -uroot -pXXXX -h127.0.0. 1"

Я думаю, что когда вопрос был опубликован, установка cygwin не предоставляла компоненты mysql, что сейчас решается.

0 голосов
/ 19 марта 2018

Нашел этот вопрос сегодня 2018-03-18 ищет ответы на

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql.sock' (2 "No such file or directory")

Файл /etc/my.conf ссылается на файлы конфигурации в /etc/my.cnf.d Я добавил это к /etc/my.cnf.d/client.cnf:

[client]
host=127.0.0.1
protocol=tcp

После этого я смог получить доступ к локальному экземпляру Windows MySQL из терминала cygwin, используя mysql -u root -p

0 голосов
/ 20 апреля 2016

Переустановите cygwin и во время переустановки найдите mysql в пакетах, установите клиент mysql, и тогда он будет работать нормально.

0 голосов
/ 25 октября 2015
  1. Скачать Cygwin
  2. Установить клиентское приложение mysql

  3. создать псевдоним в файле .bashrc

    alias mysql = 'mysql -h 127.0.0.1'

  4. выполнить источник .bashrc

Теперь вы можете подключиться к mysql

mysql -u user -p

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