2013-02-22 47 views
52

thời gian gần đây tôi đã cố gắng cài đặt MySQL với homebrew (brew install mysql) và khi tôi cố gắng chạy nó tôi nhận được lỗi sau:Không thể kết nối đến máy chủ MySQL địa phương thông qua homebrew ổ cắm

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Không có /tmp/mysql.sock cũng không phải là /var/lib/mysql.sock.

Tôi đã tìm kiếm và chưa tìm thấy bất kỳ tệp mysql.sock nào.

Làm cách nào để khắc phục sự cố này?

+0

Bạn có thể thấy liên kết này GeekHades trả lời. http://stackoverflow.com/questions/4847069/mysql-sock-is-not-created-osx/41605617#41605617 – GeekHades

+0

Tôi pha cài đặt mysql và có cùng một vấn đề sau khi pin máy tính xách tay của tôi chết và buộc phải tắt máy hoàn toàn. Đó là giá trị chạy 'mysqld' để kiểm tra mọi thứ và đảm bảo MySQL tắt đúng thời gian. Nếu máy tính bị tắt máy 'bẩn' (ví dụ: nếu pin máy tính xách tay buộc hệ thống tắt), điều này sẽ làm sạch thiết bị. Sau đó, bạn có thể khởi động lại máy chủ MySQL: 'mysql.server start'. –

+0

Không có câu trả lời nào ở đây cũng phù hợp với tôi. – Antimony

Trả lời

19

Thử kết nối bằng cách sử dụng "127.0.0.1" thay vì "localhost".

+0

Điều này phù hợp với tôi. – freshyill

+0

Cảm ơn !!!! Tôi đang sử dụng đường ray 4 với hành khách (apache) trên mac osx 10.9 – StupidDev

+0

Điều này làm việc cho tôi là tốt. Bạn có thể giải thích tại sao không? – Esteban

39

Có vẻ như máy chủ mysql của bạn chưa được khởi động. Tôi thường chạy lệnh dừng và sau đó bắt đầu lại:

mysqld stop 
mysql.server start 

Lỗi tương tự và điều này phù hợp với tôi.

+1

làm việc cho tôi, cảm ơn bạn đã đăng bài. –

+39

. LỖI!Máy chủ thoát mà không cập nhật tệp PID (/usr/local/var/mysql/myHostName.pid). ? – Pesulap

61

Khi bạn có máy chủ chạy qua

mysql.server start

bạn sẽ thấy các ổ cắm trong /tmp/mysql.sock. Tuy nhiên, hệ thống dường như mong đợi nó trong /var/mysql/mysql.sock. Để khắc phục điều này, bạn phải tạo một liên kết tượng trưng trong /var/mysql:

sudo mkdir /var/mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

này giải quyết nó cho tôi. Bây giờ phpMyAdmin của tôi hoạt động rất vui vẻ với localhost127.0.0.1.

tín dụng đi vào Henry

+1

Điều này cũng giải quyết được vấn đề của tôi với Wordpress không kết nối được với mySQL. Cảm ơn một lần nữa – Ayoub

+1

Đã thử toàn bộ rất nhiều lệnh và điều này đã cứu mạng tôi. cảm ơn người đàn ông .. – Viraths

+1

Khi tôi cố gắng 'mysql.server start' tôi nhận được' LRI! Máy chủ thoát mà không cập nhật tệp PID (/usr/local/var/mysql/lyahdav-C02R32HCG8WM.pid) '. Tôi cần một phiên bản cũ hơn của MySQL, được cài đặt thông qua 'brew install mysql @ 5.6'. –

3

Tôi đã nhận lỗi cùng và đây là những gì giúp tôi:

$ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents 
$launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 
$mysql -uroot 
mysql> 
5

1) Nếu bạn có thể bắt đầu mysql với bên dưới lệnh;

mysql server start 

2) và nếu bạn có thể thấy "mysql stop" khi bạn chạy lệnh dưới đây;

brew services list 

hơn, thêm mysql vào dịch vụ sẽ khắc phục sự cố của bạn. Với phương thức này, mysql sẽ bắt đầu như dịch vụ khi hệ thống của bạn khởi động. Để làm như vậy bạn có thể chạy lệnh dưới đây;

brew services start mysql 

Sau đó, bạn có thể khởi động lại hệ thống và thử kết nối với mysql. Tôi đã làm như vậy và ngừng nhận lỗi dưới đây;

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Tôi hy vọng điều này sẽ hữu ích.

+0

Cùng một câu hỏi với tôi, tôi không biết tại sao? – GeekHades

2

Bạn sẽ cần phải chạy mysql_install_db - Cách đơn giản nhất là nếu bạn đang ở trong thư mục cài đặt:

$ cd /usr/local/Cellar/mysql/<version>/ 
$ mysql_install_db 

Ngoài ra, bạn có thể ăn mysql_install_db một tham số basedir như sau:

$ mysql_install_db --basedir="$(brew --prefix mysql)" 
1

Tôi phải đối mặt với cùng một vấn đề trên mac của mình và giải quyết nó, bằng cách làm theo các hướng dẫn sau

https://mariadb.com/resources/blog/installing-mariadb-10116-mac-os-x-homebrew

Nhưng đừng quên giết hoặc gỡ cài đặt phiên bản cũ trước khi tiếp tục.

Commands:

brew uninstall mariadb 

xcode-select --install 

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - See more at: https://mariadb.com/resources/blog/installing-mariadb-10116-mac-os-x-homebrew#sthash.XQoxRoJp.dpuf 

brew doctor 

brew update 

brew info mariadb 

brew install mariadb 

mysql_install_db 

mysql.server start 
+0

Vui lòng giải thích với một số ví dụ ngắn gọn về cách liên kết bạn cung cấp, đã giúp bạn. Các liên kết có thể biến mất và do đó điều này có thể là lý do khiến câu trả lời của bạn có thể bị xóa. –

+0

Tôi đã cập nhật bài đăng với các lệnh, tôi hy vọng nó có thể giúp –

0

Chỉ cần để thêm vào những câu trả lời, Trong trường hợp của tôi, tôi đã không có máy chủ mySQL địa phương, nó được chạy bên trong một container Docker. Vì vậy, các tập tin ổ cắm không tồn tại và sẽ không thể truy cập cho khách hàng "mysql".

Tệp sock được tạo bởi mysqld và mysql sử dụng thông tin này để liên lạc với nó. Tuy nhiên nếu máy chủ mySql của bạn không chạy cục bộ, nó không yêu cầu tệp vớ.

Bằng cách chỉ định tên máy chủ/ip tệp sock là không bắt buộc, ví dụ:

mysql --host=127.0.0.1 --port=3306 --user=xyz --password=xyz 
0

chỉ để hoàn tất chuỗi này. do MAMP (PRO) được sử dụng khá thường

con đường ở đây là

/Applications/MAMP/tmp/mysql/mysql.sock 
-1

Các ổ cắm không được tạo ra nếu bạn khởi động lại mysqld quá nhanh sau khi ngừng nó:

brew services stop mysql;brew services start mysql 
ls /tmp/mysql.sock // socket not created 

chờ 3 giây trước khi khởi động lại bản sửa lỗi mysql này:

brew services stop mysql;sleep 3;brew services start mysql 
sleep 1.5 // Note that it takes a second after mysql starts to create the socket 
ls /tmp/mysql.sock // socket created! 
Các vấn đề liên quan