programing

cygwin에서 mysql에 연결

kingscode 2022. 10. 19. 21:20
반응형

cygwin에서 mysql에 연결

DOS 프롬프트에서 MySQL에 정상적으로 접속할 수 있는데 cygwin에서 접속하려고 하면 정지합니다.

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

뭐가 잘못됐나요?

을 알게 누군가가 은, 「」라고 하는 , 「Cygwin」, 「Cygwin」, 「Cygwin」, 「Cygwin」, 「Cygwin」, 「Cygwin」, 「/DOS」를 했습니다.which mysql아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아.

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

'을.Setup.exe「고객」이라고 하는, 「고객을 채용하다., 이제which mysql★★★★

$ which mysql
/usr/bin/mysql

MySQL 명령어는 cygwin으로 동작합니다.

비록 오래된 질문이지만, (저와 같은) 사람들이 여전히 우연히 발견할 수 있기 때문에, 여기서 답을 얻는 것이 좋을 것입니다.

Cygwin에서 MySQL 클라이언트를 실행하려고 하면 다음 오류가 반환됩니다.

$ 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

config 파일로 이동합니다.

, MySQL과의 사이에 .DOS 프롬프트)창및 ('명령어 프롬프트')bash. 「 」의 mysql안 나오네요.

이것을 확인하려면 , 커맨드를 입력해 되돌립니다.아마도 동작할 것입니다만, 프롬프트와 커맨드의 에코(입력하고 있는 것)가 없어집니다.

수 .CYGWIN 또는 " " " 입니다.bash하지만 이 문제를 해결할 시간을 가져본 적은 없어요

기타 답변에는 다음과 같은 중요한 세부 사항이 없습니다.

Cygwin에는 두 개의 껍질이 있습니다.

  1. " " " :c:\cygwin\bin\mintty.exe
  2. 본::c:\cygwin\Cygwin.bat(이 발동한다.c:\cygwin\bin\bash.exe)

Win32 MySQL은 stdin을 제대로 프로빙할 수 없기 때문에 Win32 MySQL은 #2에 올바르게 쓸 수 있지만 #1에는 쓸 수 없습니다(@PeterNore 감사합니다).

Win32 MySQL win win win win win win win win win win win win win win win?which

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

보너스: 경로 문제 해결을 위한 Cygwin 가이드(@Dustin 감사)

솔루션/회피책을 여기에 게재했습니다.

sygwin 아래의 Windows 앱에서 키를 인식할 수 없는 경우가 있습니다.

cmd.exe 실행 파일에서 bash를 실행하면 mysql이 bash 내에서 작동합니다.

  1. 바탕 화면에 cmd.exe 바로 가기를 만듭니다.
  2. 바로 가기 속성을 열고 시작 디렉토리를 cygwin bin 디렉토리(보통 C:\cygwin\bin)로 변경합니다.
  3. 타겟 파라미터의 명령어 끝에 /c bash.exe를 추가합니다.

이 작업은 윈도우즈 cmd.exe 환경에서 bash를 실행하고 mysql을 실행하려고 하면 예상대로 실행됩니다.이것은 Windows 7에서는 동작하고 있습니다만, 다른 버전에서는 테스트되고 있지 않습니다.

  1. cygwin bin 디렉토리를 path env 변수에 넣습니다.
  2. cmd를 실행하여 명령 창 사용
  3. cmd 창에서 bash -l 실행

그러면 MySQL을 문제없이 실행할 수 있습니다.

스벤드 한센의 답은 옳다.

  • Windows mysql 서버 파일 설치(예를 들어 mysql-5.5.25-win32.msi)

  • cygwin instra를 사용하여 Cygwin mysql 클라이언트 설치(setup.exe)

  • cygwin 클라이언트 "mysql -u[user] -p[Password] -h[host](mysql -uroot -pXXX -h127.0.1)"를 사용하여 cygwin 창에서 서버에 연결합니다.

질문이 올라왔을 때 sygwin 셋업은 mysql 컴포넌트를 제공하지 않았다고 생각합니다.이 문제는 해결되었습니다.

Althoug Svend Hansen 답변에는 몇 가지 포인트가 있으며, 또 다른 것은 환경변수의 PATH입니다.mysql로의 경로cygwin의 경로보다 이전인 경우

which mysql

나타나다

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

그렇지 않으면 cygwin 클라이언트가 표시됩니다.

Wikipedia 참조:

일부 프로그램에서는 검색 프로세스를 고속화하거나 OS 명령어를 덮어쓰기 위해 설치 중에 PATH 변수의 콘텐츠 에 디렉토리를 추가할 수 있습니다.

  1. Cygwin 다운로드
  2. mysql 클라이언트 앱 설치

  3. .sysrc 파일에 별칭 생성

    aliasmysql='sysql -h 127.0.0.1'

  4. 소스 .discrc를 실행합니다.

이제 mysql에 연결할 수 있습니다.

mysql -u 사용자 -p

저는 이 문제를 해결하기 위해 저를 만족시키는 세미픽스를 만들었습니다.cmd.exe에서 cygwin.bat을 실행한 후 mysql을 입력하면 모든 것이 정상적으로 동작합니다.

나는 바로 거기서 그 문제가 박하품이라는 것을 깨달았다.

간단한 해결?Console2를 다운로드하여 설정에서 cygwin 셸을 가리킬 수 있습니다.Console2를 재시작하고 mysql을 실행하면 출력이 나타납니다.

Console2는 Mintty보다 견고한 인터페이스/커스터마이즈가 가능하기 때문에 이 방법은 유리합니다.투명도와 색상 매핑 옵션이 정말 마음에 들어요.

실행 방법:

  1. C에서urmysql.exe를 복사하기만 하면 됩니다.\Program Files\MySQL\MySQL Server 5.5\bin
  2. 이 mysql.exe를 C:\cygwin\usr\local\bin에 붙여넣습니다.
  3. 이제 어떤 mysql을 실행해도, 그것은

면책사항:MinGW/MSYS의 MinTTY에서 이 문제를 해결한 것은 다음과 같습니다.조사 결과, 이 근본 원인은 Cygwin에게도 영향을 줄 것으로 생각됩니다.

답변은 https://stackoverflow.com/a/23164362/1034436에 게재되어 있습니다.

간단히 말해서, 당신은 그 전에mysql윈티로 명령하다console.exe(또는 에일리어스를 사용합니다).이 솔루션은 특별한 cygwin/mingw 빌드가 아닌 네이티브 Windows MySQL 실행 파일과 함께 작동했습니다.하지만 윈티를 컴파일해야 합니다만, 그것은 간단하고 고통스럽지 않았습니다.또, 그 문서대로 동작했습니다.

주의: 이것은 또한 Python과 Mercurial with OpenSSH와 같은 몇몇 다른 네이티브 Windows 콘솔 애플리케이션에서도 문제를 해결했습니다.

sygwin을 재설치하고 패키지의 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참조, 설정 파일/etc/my.cnf.d이거 추가했어/etc/my.cnf.d/client.cnf:

[client]
host=127.0.0.1
protocol=tcp

그 후 cygwin 터미널에서 로컬 Windows MySQL 인스턴스에 액세스할 수 있었습니다.mysql -u root -p

언급URL : https://stackoverflow.com/questions/329866/connecting-to-mysql-from-cygwin

반응형