подключение к mysql из cygwin



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



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


Что случилось?

866   14  

14 ответов:

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

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

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

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

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

поэтому я запустил cygwin Setup.exe искал " mysql "и установил последний"mysql client". Сейчас 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

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

другие ответы не хватает следующих ключ деталь:

в Cygwin имеет две оболочки:

  1. по умолчанию: c:\cygwin\bin\mintty.exe
  2. основные: 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 руководство по преодолению проблем пути (спасибо @Dustin)

Я разместил решение / обходной путь здесь:

введите ключ иногда не распознается в приложениях windows под cygwin

запустите 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, но не был протестирован в любой другой версии.

  1. поместите каталог cygwin bin в переменную path env.
  2. используйте окно командной строки, выполнив команду cmd
  3. запустите bash-l в окне cmd

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

ответ Свенда Хансена правильный:

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

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

  • подключение к серверу в окне cygwin с помощью клиента cygwin " mysql-u[user] - p[Password]- h[host]", в моем случае "mysql-uroot-pXXXX-h127.0.0.1"

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

Я создал полу-исправление для этого, которая удовлетворяет меня. Я управлял cygwin.летучая мышь в УМК.exe, затем набрав mysql-все работало нормально.

Я сразу понял, что проблема была Минти.

простое решение? Скачать Console2, и в разделе Настройки вы можете указать это к оболочке cygwin. Перезагрузите Console2, запустите mysql и вывод кажется.

Это выгодно в любом случае, потому что Console2 имеет более надежный интерфейс настройки, чем Mintty. Мне очень нравятся параметры отображения прозрачности и цвета.

Этого:

  1. просто скопируйте UR mysql.exe от C:\Program Files\MySQL\MySQL Server 5.5\bin
  2. вставьте этот mysql.exe в C:\cygwin\usr\local\bin
  3. Теперь запустите какой mysql, он будет

городе ответ Свена Хансена имеет некоторые точки, другое дело путь в переменных окружения-если путь к mysql перед этим из программа

which mysql

покажет

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

в противном случае он покажет клиент cygwin.

как говорится в справочной Википедии:

некоторые программы могут добавить свой каталог в перед пути содержание переменной во время установки, чтобы ускорить процесс поиска и / или переопределить команды ОС.

отказ от ответственности: следующее решило эту проблему для меня под MinTTY на MinGW/MSYS. Из исследований я считаю, что эта же первопричина влияет и на Cygwin.

ответ размещен здесь:https://stackoverflow.com/a/23164362/1034436

в двух словах, вам нужно будет добавить свой mysql команда с winpty в console.exe (или иметь псевдонимы, которые делают это). Это решение работало с уроженца исполняемые файлы Windows MySQL, а не специальные cygwin / MinGW build. Вы, однако, должны скомпилировать winpty, но это было просто и безболезненно, и работало в соответствии с их документацией для меня.

Примечание: это также решило мою проблему с несколькими другими собственными консольными приложениями Windows, а именно Python и Mercurial с OpenSSH.

  1. Скачать Cygwin
  2. установить клиентское приложение mysql

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

    псевдоним mysql= 'mysql-h 127.0.0.1'

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

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

mysql-u user-p

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

нашел этот вопрос сегодня 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 ссылки config в /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

Comments

    Ничего не найдено.