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에는 두 개의 껍질이 있습니다.
- " " " :
c:\cygwin\bin\mintty.exe
- 본::
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 내에서 작동합니다.
- 바탕 화면에 cmd.exe 바로 가기를 만듭니다.
- 바로 가기 속성을 열고 시작 디렉토리를 cygwin bin 디렉토리(보통 C:\cygwin\bin)로 변경합니다.
- 타겟 파라미터의 명령어 끝에 /c bash.exe를 추가합니다.
이 작업은 윈도우즈 cmd.exe 환경에서 bash를 실행하고 mysql을 실행하려고 하면 예상대로 실행됩니다.이것은 Windows 7에서는 동작하고 있습니다만, 다른 버전에서는 테스트되고 있지 않습니다.
- cygwin bin 디렉토리를 path env 변수에 넣습니다.
- cmd를 실행하여 명령 창 사용
- 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 변수의 콘텐츠 앞에 디렉토리를 추가할 수 있습니다.
- Cygwin 다운로드
mysql 클라이언트 앱 설치
.sysrc 파일에 별칭 생성
aliasmysql='sysql -h 127.0.0.1'
- 소스 .discrc를 실행합니다.
이제 mysql에 연결할 수 있습니다.
mysql -u 사용자 -p
저는 이 문제를 해결하기 위해 저를 만족시키는 세미픽스를 만들었습니다.cmd.exe에서 cygwin.bat을 실행한 후 mysql을 입력하면 모든 것이 정상적으로 동작합니다.
나는 바로 거기서 그 문제가 박하품이라는 것을 깨달았다.
간단한 해결?Console2를 다운로드하여 설정에서 cygwin 셸을 가리킬 수 있습니다.Console2를 재시작하고 mysql을 실행하면 출력이 나타납니다.
Console2는 Mintty보다 견고한 인터페이스/커스터마이즈가 가능하기 때문에 이 방법은 유리합니다.투명도와 색상 매핑 옵션이 정말 마음에 들어요.
실행 방법:
- C에서urmysql.exe를 복사하기만 하면 됩니다.\Program Files\MySQL\MySQL Server 5.5\bin
- 이 mysql.exe를 C:\cygwin\usr\local\bin에 붙여넣습니다.
- 이제 어떤 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
'programing' 카테고리의 다른 글
사전에서 반복하는 동안 사전에서 항목을 삭제하려면 어떻게 해야 합니까? (0) | 2022.10.19 |
---|---|
버튼을 사용하여 페이지를 다른 페이지로 리디렉션하려면 어떻게 해야 합니까? (0) | 2022.10.19 |
도커 MariaDB/Mysql 덤프 (0) | 2022.10.19 |
MySQL의 연산자 <=>는 무엇입니까? (0) | 2022.10.19 |
새로운 DB 버전에서 이전 Flyway 마이그레이션이 비활성화되는 경우 어떻게 처리합니까? (0) | 2022.10.19 |