Tôi có thể kết nối thành công với MySQL từ dấu nhắc DOS, nhưng khi tôi cố gắng kết nối từ Cygwin, nó chỉ bị treo.kết nối với mysql từ cygwin
$/cygdrive/c/Program\ Files/MySQL/MySQL\ Server\ 5.1/bin/mysql -u root -p
Có vấn đề gì?
Tôi có thể kết nối thành công với MySQL từ dấu nhắc DOS, nhưng khi tôi cố gắng kết nối từ Cygwin, nó chỉ bị treo.kết nối với mysql từ cygwin
$/cygdrive/c/Program\ Files/MySQL/MySQL\ Server\ 5.1/bin/mysql -u root -p
Có vấn đề gì?
Giả sử rằng bạn có bản dựng Windows gốc của MySQL, có sự không tương thích mô phỏng thiết bị đầu cuối giữa các cửa sổ DOS
(dấu nhắc lệnh) và bash
. Lời nhắc cho mysql
không hiển thị.
Để xác nhận điều này, hãy nhập lệnh và trả lại - có thể nó sẽ hoạt động, nhưng lời nhắc và tiếng vọng của lệnh (thứ bạn đang nhập) sẽ bị mất.
Có thể có cách giải quyết ở thuộc tính sytem CYGWIN
hoặc trong bash
, nhưng tôi chưa bao giờ dành thời gian để làm việc này.
http://bugs.mysql.com/bug.php?id=58917 –
điều này đã là một vấn đề trong mười năm: http://lists.mysql.com/win32/6625 –
Điều này cũng có vẻ xảy ra khi bạn chạy telnet. – Chloe
tôi đăng một giải pháp/cách giải quyết ở đây:
enter key sometimes not recognized in windows apps under cygwin
Tôi đã sử dụng dấu nhắc lệnh cygwin cơ bản lần này và nó hoạt động. Cảm ơn! – MCS
Tôi không có bất kỳ bộ biến môi trường CYGWIN nào. Vẫn còn cùng một vấn đề - với thiết bị đầu cuối Cygwin và cũng có thể khi sử dụng SSH. –
Run bash từ thực thi cmd.exe và sau đó mysql sẽ làm việc bên trong bash.
Điều này sẽ chạy bash dưới môi trường cmd.exe windows và khi bạn cố chạy mysql, nó sẽ thực thi như bạn mong đợi. Điều này đang làm việc dưới các cửa sổ 7 nhưng chưa được thử nghiệm trong bất kỳ phiên bản nào khác.
(-1 rút lại vì người dùng mới sử dụng SO). OP có thể bắt đầu bash dưới cửa sổ; giải pháp của bạn không thêm bất kỳ thông tin nào vào bash-shortcut thông thường được cung cấp bởi cài đặt chuẩn Cygwin. Và bạn không trả lời câu hỏi của mình: Điều gì là sai với cách gọi MySQL của mình? –
Điều này hoạt động, đáng kinh ngạc! Cảm ơn! –
Điều này làm việc cho tôi trên windows 8. Cảm ơn! – Hari
Tôi vừa bắt gặp này, và khi tôi đọc đề cập đến một ai đó của nó là một cửa sổ/lệnh DOS mà bạn chạy trong Cygwin tôi đã một which mysql
và đó đã cho tôi:
$ which mysql
/cygdrive/c/Program Files/MySQL/MySQL Server 5.5/bin/mysql
Vì vậy, tôi chạy Cygwin Setup.exe
tìm kiếm "mysql" và cài đặt "mysql client mới nhất". Bây giờ which mysql
trông giống như:
$ which mysql
/usr/bin/mysql
Và lệnh công trình MySQL trong Cygwin :)
Mặc dù nó là một câu hỏi cũ, nó sẽ được tốt đẹp để có câu trả lời thực tế ở đây, khi mọi người (như tôi) có thể vẫn vấp ngã trên nó.
Nếu nỗ lực của bạn để chạy client MySQL từ Cygwin trả lại lỗi sau:
$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql.sock' (2)
Sau đó, bạn có thể sửa chữa nó bằng cách thêm -h 127.0.0.1
lựa chọn rõ ràng để các dòng lệnh, như trong:
$ mysql -u root -p -h 127.0.0.1
Cập nhật dựa trên nhận xét:
Để tránh chỉ định -h 127.0.0.1
trên lệnh lin e mỗi khi bạn kết nối, bạn có thể thêm:
[client]
host=127.0.0.1
đến tập tin /etc/my.cnf
Trên một số cài đặt của Cygwin, quy định cụ thể các máy chủ với -h
có thể không đủ. Nếu vậy, hãy thử cũng quy định cụ thể:
--protocol=tcp
hoặc thêm
protocol=tcp
vào file config.
Để lưu '-h 127.0.0.1' mỗi khi bạn kết nối, bạn có thể tạo một tệp cấu hình MySQL tại'/etc/my.cnf' và đặt; '[client] \ n host = 127.0.0.1'. Các khách hàng MySQL sẽ sử dụng mạng theo mặc định sau đó. – sixones
Theo như MySQL là có liên quan, 'localhost'! =' 127.0.0.1'. Trước đây chỉ ra rằng một kết nối nên được thực hiện thông qua socket UNIX, mà máy chủ Windows bản địa rõ ràng là không hỗ trợ. Sau đó buộc một kết nối mạng, do đó sự khác biệt. – Yaakov
Sau đó, MySQL có thể chạy mà không có vấn đề.
câu trả lời Svend Hansen là một trong những quyền:
Cài đặt cửa sổ tập tin máy chủ mysql (từ mysql-5.5.25-win32.msi ví dụ)
Install Cygwin mysql client với trình cài đặt Cygwin (setup.exe)
Kết nối với máy chủ của bạn trong cửa sổ Cygwin bằng ứng dụng khách Cygwin "mysql -u [user] -p [Mật khẩu] -h [máy chủ]", trong trường hợp của tôi "mysql -uroot -pXXXX - h127.0.0.1 "
Tôi nghĩ rằng khi câu hỏi được đăng, thiết lập Cygwin không cung cấp các thành phần mysql, được giải quyết ngay bây giờ.
Tôi đã tạo một bản sửa lỗi bán cho điều này thỏa mãn tôi. Tôi chạy cygwin.bat trong cmd.exe, sau đó gõ mysql trong mọi thứ hoạt động tốt.
Tôi nhận ra ngay rằng vấn đề là mintty.
Giải pháp dễ dàng? Tải xuống Console2 và trong cài đặt, bạn có thể trỏ vào vỏ Cygwin. Khởi động lại Console2, chạy mysql và xuất ra xuất hiện.
Đây là cách thuận lợi, vì Console2 có giao diện/tùy chỉnh mạnh mẽ hơn Mintty.Tôi thực sự thích các tùy chọn ánh xạ màu và minh bạch.
câu trả lời khác thiếu các chi tiết sau đây chính:
Cygwin có hai vỏ:
c:\cygwin\bin\mintty.exe
c:\cygwin\Cygwin.bat
(mà ra mắt c:\cygwin\bin\bash.exe
)Các Win32 MySQL có thể viết đúng cho # 2, nhưng không phải # 1, vì Win32 MySQL cannot probe stdin properly (nhờ @PeterNore)
Bạn muốn biết mình đang sử dụng Win32 MySQL chưa? Sử dụng which
, ví dụ:
$ which mysql
/cygdrive/c/Program Files/MySQL/MySQL Server 5.1/bin/mysql
Bonus: Cygwin guide to overcoming path problems (thanks @Dustin)
làm điều này:
Althoug Svend Hansen answer có một số điểm, điều khác là PATH trong các biến Môi trường - nếu con đường với mysql là trước đó của Cygwin
which mysql
sẽ hiển thị
/cygdrive/c/Program Files/MySQL/MySQL Server 5.5/bin/mysql
nếu không nó sẽ hiển thị các khách hàng Cygwin.
Là tài liệu tham khảo Wikipedia nói:
Some programs may add their directory to the front of the PATH variable's content during installation, to speed up the search process and/or override OS commands.
Disclaimer: Sau đây giải quyết vấn đề này đối với tôi dưới mintty trên MinGW/MSYS. Từ nghiên cứu, tôi tin rằng nguyên nhân gốc rễ này cũng ảnh hưởng đến Cygwin.
Câu trả lời được đăng ở đây: https://stackoverflow.com/a/23164362/1034436
Tóm lại, bạn sẽ cần phải thêm vào trước lệnh mysql
của bạn với winpty của console.exe
(hoặc có bí danh mà làm như vậy). Giải pháp này đã làm việc với native các tệp thi hành Windows MySQL và không phải là một công cụ xây dựng Cygwin/mingw đặc biệt. Tuy nhiên, bạn phải biên dịch winpty, nhưng điều đó đơn giản và không đau đớn, và làm việc theo tài liệu của họ cho tôi.
Lưu ý: Điều này cũng giải quyết được vấn đề của tôi với một số ứng dụng bảng điều khiển Windows gốc khác, cụ thể là Python và Mercurial với OpenSSH.
Cài đặt mysql ứng dụng client
tạo một bí danh trong tập tin .bashrc
alias mysql = 'mysql -h 127.0.0.1'
Bây giờ bạn có thể kết nối với mysql
mysql -u -p dùng
Cài đặt lại Cygwin và trong quá trình tìm kiếm cài đặt lại cho mysql trong các gói, cài đặt mysql khách hàng và sau đó nó sẽ hoạt động tốt.
Tôi vừa mới gặp phải vấn đề này. Vẫn còn đó sau 9 năm. MySQL Ver 14,14 Distrib 5.7.18, cho Win64 (x86_64). Cygwin 2.8.0 (0.309/5/3) x86_64. – bostaf