ERROR 2002 (HY000): Không thể kết nối với máy chủ MySQL cục bộ thông qua socket '/tmp/mysql.sock'


202

Tôi đã cài đặt MySQL trên Mac OS X Mountain Lion homebrew install mysql, nhưng khi dùng thử mysql -u roottôi đã gặp phải lỗi sau:

ERROR 2002 (HY000): Không thể kết nối với máy chủ MySQL cục bộ thông qua socket '/tmp/mysql.sock' (2)

Lỗi này nghĩa là gì? Làm thế nào tôi có thể sửa chữa nó?


3
Không đăng nó dưới dạng câu trả lời nhưng bạn phải install mysql-serverđóng gói, không chỉmysql
Hanky ​​Panky

3
@HankyPanky có lẽ đó là sự thật khi bạn viết nó. Nhưng vào năm 2016 Brew không có người mysql-serverđến install.
jjpe

22
Điều quan trọng cần lưu ý là bạn đã cài đặt bằng Homebrew, vì vậy hãy bỏ qua các mẹo không phải là homebrew và bắt đầu (và khởi động lại khi khởi động) với brew services start mysqlhoặc (nếu bạn không muốn có dịch vụ nền) mysql.server start.
Dave Everitt

1
Tôi đã làm cho nó hoạt động nhưng với mysql cũ bình thường 5.7.19. Phiên bản mysql@5.7 mới 5.7.24không thể hoạt động được vì một số tham chiếu cấu hình được giữ liên kết với mysql cũ thay vì phiên bản mới Cellar mysql@5.7 Keg. Vì vậy, cảm ơn tôi đã thử điều này sau
KeitelDOG

1
Lỗi này cũng có khả năng xảy ra sau khi chạy brew upgradesẽ cài đặt phiên bản mới hơn của mysql so với cài đặt trước đó.
johnsampson

Câu trả lời:


113

Có lẽ vì MySQL đã được cài đặt nhưng chưa chạy.

Để xác minh rằng nó đang chạy, hãy mở Trình giám sát hoạt động và trong "Tất cả quy trình", tìm kiếm và xác minh bạn thấy quy trình "mysqld".

Bạn có thể bắt đầu nó bằng cách cài đặt "MySQL.prefPane".

Dưới đây là hướng dẫn đầy đủ giúp tôi: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html


95
Tôi chỉ chạy mysqldvà đó là tất cả, đây là một vấn đề gây ra bởi việc tắt máy kém do một loại thiết lập lại / tắt cứng của hệ thống.
ProfNandaa

2
Không có phương pháp được đề xuất làm việc. Đối với tôi, nó đang chạy, tuy nhiên, có một vấn đề về sự cho phép. Chạy đã sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7giải quyết vấn đề
FooBar

Khi tìm trong Activity Monitor, mysqlId đang chạy; để khắc phục điều này, chỉ cần dừng mysql sau đó khởi động lại nó.
JpersaudCodezit

108

Bạn sẽ cần khởi động MySQL trước khi bạn có thể sử dụng mysqllệnh trên thiết bị đầu cuối của mình. Để làm điều này, chạy brew services start mysql. Theo mặc định, brew cài đặt cơ sở dữ liệu MySQL mà không cần mật khẩu root. Để bảo mật nó chạy:mysql_secure_installation .

Để kết nối chạy : mysql -uroot. rootlà tên người dùng ở đây.


8
Chạy đã sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7giải quyết vấn đề
FooBar

1
Đối với những người thắc mắc mysql_secure_installationlà một kịch bản cụ thể mariaDB.
T.Woody

3
brew services start mysqlsự thành công. Nhưng khi tôi chạy mysql -uroottheo nó, vẫn lỗi như vậy.
Harper Koo

Có cần thiết phải chạy cái này mỗi khi Mac khởi động hoặc sẽ chạy nó một khi thoát khỏi lỗi / giữ MySQL chạy hoặc khởi động khi khởi động?
Connor Leech

Chạy cái này một lần là đủ.
Md Mazedul Hồi giáo Khan

90

Điều này xảy ra sau khi cài đặt homebrew và xảy ra do vấn đề cấp phép. Các lệnh sau đã khắc phục sự cố.

sudo chown -R _mysql:mysql /usr/local/var/mysql

sudo mysql.server start

2
bạn thật tuyệt vời @nirojan, tôi đã đập đầu vào tường: thumsup:
Ravi Sharma

Mát mẻ. Tôi có thể giải quyết vấn đề của mình khi thay đổi tài khoản quản trị viên mac khác :)
William Wong Garay

Cảm ơn rất nhiều. Tôi đã bị nứt đầu hơn 5 giờ rồi. Nhìn thấy nhiều câu trả lời trên internet và chỉ điều này giúp.
ivange94

Tôi yêu bạn @nirojan
Raccoon

Thanh danh! Nhưng khi tôi khởi động lại MacBook, tôi cũng gặp vấn đề tương tự.
Junior Gantin

46

Chạy: brew info mysql

Và làm theo hướng dẫn. Từ mô tả trong công thức:

Set up databases to run AS YOUR USER ACCOUNT with:
    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

To set up base tables in another folder, or use a different user to run
mysqld, view the help for mysql_install_db:
    mysql_install_db --help

and view the MySQL documentation:
  * http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
  * http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html

Hi vọng điêu nay co ich.


35

Như những người khác đã chỉ ra điều này là do MySQL đã được cài đặt nhưng dịch vụ không chạy. Có nhiều cách để bắt đầu dịch vụ MySQL và cách làm việc với tôi là dưới đây.

Để bắt đầu dịch vụ:

  1. Chuyển đến "Tùy chọn hệ thống"
  2. Ở khung dưới cùng nên có biểu tượng MySql.
  3. Nhấp đúp vào đó để khởi chạy 'Trạng thái máy chủ MySQL' và nhấn nút 'Khởi động máy chủ MySQL'

Đặc biệt của tôi

Mac Yosemite 10.10.3

Gói đã cài đặt: /Volume/mysql-advified-5.6.24-osx10.8-x86_64


@HosMercury bạn có thể xác nhận rằng bạn đã cài đặt MySQL
Ithar

Tôi tải xuống và cài đặt mysql từ trang web chính thức của Mysql. Giải pháp này hiệu quả với tôi. Cảm ơn :)
鄭元傑

1
Xin chào, tôi cũng đã tải xuống và cài đặt mysql từ trang web chính thức, nhưng trong khung tùy chọn, máy chủ không được kích hoạt (dấu chấm màu đỏ), khi tôi nhấp vào 'start sql server', nó sẽ chuyển sang 'green' trong một giây và trở lại màu đỏ, chẳng có gì xảy ra. Tôi đã thử 'chown', symlink đến tmp / mysql.socket, gỡ cài đặt / cài đặt lại, cài đặt mys mys, nhưng tất cả đều thất bại. cài đặt brew mang đến cho tôi một lỗi không thỏa mãn, một điều gì đó về việc yêu cầu hệ điều hành Sierra hoặc cao hơn. Tôi đang chạy el capitan. Bất kỳ trợ giúp sẽ được đánh giá cao.
Spencer Trinh

24

Giải pháp xoay quanh:

  • thay đổi quyền của MySQL

    sudo chown -R _mysql:mysql /usr/local/var/mysql
  • Bắt đầu một quy trình MySQL

    sudo mysql.server start

Chỉ cần thêm vào rất nhiều câu trả lời hay và hữu ích đã được cung cấp ở đây và từ nhiều bài đăng khác nhau, hãy thử chỉ định máy chủ nếu các lệnh trên không giải quyết được vấn đề này cho bạn, tức là

mysql -u root -p h127.0.0.1

Đối với tôi đó là vấn đề về quyền
pfwd

nó phải là: mysql -u root -p -h127.0.0.1
Đức Chi

Wow, một giải pháp tốt hơn là xóa sạch tất cả những thứ địa phương của tôi. Đây là một sửa chữa nhanh chóng!
Jordan

Tôi đã thử ở trên nhưng cuối cùng, nó đã hoạt động: sudo chown -R $ (whoami) $ (brew --prefix) / *
Kiran Ruth R

15

Cảnh báo - phương pháp này sẽ xóa tất cả cơ sở dữ liệu của bạn trong /usr/local/var/mysql thư mục

Tôi đã cài đặt MySQL với Homebrew và điều duy nhất khắc phục điều này đối với tôi là cài đặt lại MySQL.

Trên máy tính xách tay của công ty tôi, tôi không được phép gỡ cài đặt MySQL khỏi máy tính của mình thông qua Homebrew:

$ brew uninstall mysql --ignore-dependencies
Uninstalling /usr/local/Cellar/mysql/8.0.12... (255 files, 233.0MB)
Error: Permission denied @ dir_s_rmdir - /usr/local/Cellar/mysql/8.0.12

Vì vậy, thay vào đó, tôi gỡ bỏ và cài đặt lại MySQL theo cách thủ công:

$ sudo rm -rf /usr/local/Cellar/mysql
$ brew cleanup
$ sudo rm -rf /usr/local/var/mysql
$ brew install mysql

Và điều đó đã làm việc!


Cảnh báo - phương pháp này sẽ xóa tất cả cơ sở dữ liệu của bạn (trong thư mục / usr / local / var / mysql).
johnsampson

13

Dưới đây tôi bao gồm các hướng dẫn mới nhất từ brew install mysqlcác tìm kiếm mới hơn cho vấn đề này có thể có lợi:

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.6.26.yosemite.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.26.yosemite.bottle.1.tar.gz

To connect:
    mysql -uroot

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start

Trong trường hợp của tôi, tôi đã tải mysql thông qua launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plistvà sau đó có thể khởi chạy $ mysqlvà đang trên đường.

Tôi hy vọng điều này sẽ giúp những người gỡ rối gần đây!


11

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

Cùng một lỗi, và điều này làm việc cho tôi.


9

Điều này đã khắc phục sự cố của tôi khi tôi khởi động lại dịch vụ mysql. Chỉ cần chạy:

brew services start mysql

8

vấn đề này liên quan đến /usr/local/var/mysqltruy cập thư mục, tôi xóa thư mục này và cài đặt lại mysql.

  1. gỡ cài đặt mysql với brew:

    brew uninstall mysql

  2. sudo rm -r /usr/local/var/mysql

  3. brew install mysql@8.0
  4. mysql -u root

Giải pháp này hoạt động tốt cho tôi! NHƯNG BẠN MẤT TẤT CẢ CÁC CƠ SỞ CỦA BẠN! CẢNH BÁO!


2
Điều này nhiều khả năng sẽ khắc phục vấn đề, tuy nhiên với những độc giả tương lai, được cảnh báo rằng điều này sẽ xóa sạch tất cả các cơ sở dữ liệu của bạn. Về cơ bản, nó rất khó cài đặt lại MySQL. Tôi biết bối cảnh của câu hỏi là một cài đặt mới, nhưng một số người đang quét có thể chỉ thử điều này mà không biết thiệt hại mà nó có thể gây ra cho cài đặt hiện có / sản xuất.
efru

1
Đây không thực sự là một giải pháp. Đây là "Bạn đã thử bật và tắt lại chưa?"
Berry M.

6

Ồ, điều đó khiến tôi mất một lúc để tìm ra. Tôi đã nhìn thấy nó trong một bình luận. Sau khi cài đặt mysql bằng brew và bắt đầu dịch vụ (có thể sử dụng sudo brew services start mysql) rồi chạy:

$ mysqld

Và MySQL sẽ được chạy cho bạn sau đó.


5

Đối với tôi nó đơn giản như chạy:

/usr/local/opt/mysql/bin/mysqld_safe

thay vì mysqld


1
Điều này làm việc cho tôi. Không chắc tại sao, nhưng nó có thể liên quan đến lỗi khởi động lại hệ điều hành Mac trên máy của tôi
kraftydevil

3

Tôi tìm thấy giải pháp cho vấn đề của tôi. Đó thực sự là do máy chủ MySQL của tôi không chạy.

Nguyên nhân là do MySQL không được thiết lập chính xác trên máy của tôi, do đó không thể chạy.

Để khắc phục điều này, tôi đã sử dụng một tập lệnh cài đặt MySQL trên Mac OSX Mountain Lion , trong đó phải cài đặt các tệp bị thiếu.

Đây là liên kết: http://code.macminivault.com/

Lưu ý quan trọng: Tập lệnh này đặt mật khẩu gốc dưới dạng một chuỗi được tạo ngẫu nhiên, nó lưu trên Bàn làm việc, vì vậy hãy cẩn thận không xóa tệp này và lưu ý mật khẩu. Nó cũng cài đặt trình quản lý MySQL trong tùy chọn hệ thống của bạn. Tôi cũng không chắc chắn nếu loại bỏ bất kỳ cơ sở dữ liệu hiện có, vì vậy hãy cẩn thận về điều đó.


3

Trong trường hợp của tôi, đó chỉ đơn giản là vấn đề xóa một tập tin khóa.

sudo rm -f /tmp/mysql.sock.lock

3

Tôi đã giải quyết vấn đề này và tôi đã quản lý để chạy máy chủ mysql bằng giải pháp bên dưới

Cài đặt mysql thông qua .dmg( https://dev.mysql.com/doads/mysql/5.7.html ), bạn sẽ nhận được bảng điều khiển dịch vụ mysql trong tùy chọn hệ thống, sau đó khởi động mysql từ bảng điều khiển và thử

mysql -u root -p

Hình ảnh đính kèm để tham khảo

Tùy chọn hệ thống

Bảng điều khiển Mysql


2

Sau khi làm việc này trong vài giờ, những gì đã làm việc với tôi là vào / etc / mysql / và chỉnh sửa tệp my.cnf. Thêm những điều sau

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

1
Điều này cũng có một mẹo nhỏ đối với tôi, mặc dù đối với phiên bản os / mysql của tôi, đó là: /etc/my.conf và ổ cắm nằm trong /var/lib/mysql/mysql.sock /var/log/mysqld.log bạn đến nơi tập tin ổ cắm.
keithpjcar

1

Tôi đã thử mọi cách có thể để giải quyết vấn đề này, như ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock, gỡ cài đặt và cài đặt lại mysql, đảm bảo mysql vẫn chạy trên xampp nhưng không có cái nào vẫn hoạt động .

Cuối cùng, tôi mở my.cnf (tệp cấu hình) và sao chép đường dẫn ổ cắm (đảm bảo sao chép đường dẫn đầy đủ nếu không nó sẽ không hoạt động). Sau đó, tôi thực hiện lệnh này trong thiết bị đầu cuối của tôi

mysql --socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

Lo, và kìa, mysql ra mắt.

Giải pháp này sẽ chỉ hoạt động nếu MySQL của bạn được hiển thị chạy trên Xampp / Ampps, nhưng trong thiết bị đầu cuối, nó vẫn không kết nối với ổ cắm bên phải khi bạn đã thử một cái gì đó như:

./mysql -u root

hoặc là

brew services start mysql

Tôi hi vọng cái này giúp được!


Tôi cũng đã thử mọi giải pháp được đề xuất từ ​​bài đăng này và nó không hoạt động. Bạn có cần cài đặt xampp không? tôi không quen với điều này Tôi chỉ cài đặt phiên bản GPL máy chủ mysql từ trang web chính thức (.DMG). Tôi không tin rằng tôi có ứng dụng này - XAMPP. Bạn có thể vui lòng giải thích? Cảm ơn.
Spencer Trinh

1

chỉ điều này đã tạo ra mánh khóe cho tôi brew services start --all (sau khi thử tất cả các câu trả lời)


2
Giải thích làm thế nào nó liên quan đến câu hỏi.
mentallurg

1

Tôi khuyên bạn nên chạy

  mysql.server start

trước khi đi

  mysql -u root -p

để đảm bảo rằng máy chủ mysql đang chạy trước khi thử đăng nhập vào nó

Điều này xảy ra nhiều lần khi bạn khởi động / khởi động lại máy mà không có máy chủ mysql nào đang chạy.


1

Tôi tiếp tục quay lại bài viết này, tôi đã gặp lỗi này nhiều lần. Nó có thể phải làm với việc nhập tất cả các cơ sở dữ liệu của tôi sau khi thực hiện cài đặt mới.

Tôi đang sử dụng homebrew. Điều duy nhất được sử dụng để sửa nó cho tôi:

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

Sáng nay, vấn đề trở lại sau khi máy của tôi quyết định tắt qua đêm. Điều duy nhất đã sửa nó bây giờ là nâng cấp mysql.

brew upgrade mysql

0

Trong trường hợp của tôi ngay sau khi cài đặt MAMP truy cập mysql từ thiết bị đầu cuối đã đưa ra cùng một lỗi ổ cắm. Cuối cùng, tất cả những gì nó muốn là khởi động lại và nó hoạt động.


0

Rất nhiều phản hồi hữu ích khác ở đây, nhưng không có gì khắc phục điều này cho tôi. Cuối cùng, không có gì tôi tìm thấy trên trang web này hoặc những người khác sẽ nhận được bất kỳ phiên bản MySQL nào từ Homebrew làm việc cho tôi.

Thật không đau đớn khi chỉ cần tải xuống DMG từ https://dev.mysql.com/doads/file/?id=479114 (tìm phiên bản phù hợp bạn cần) và để trình hướng dẫn cài đặt nó cho tôi. Bước thủ công duy nhất khác là thêm /usr/local/mysql/binvào PATH của tôi.

Tôi muốn giới thiệu tùy chọn này nếu brew gây rắc rối cho bạn.

Cập nhật - nếu điều này vẫn không khắc phục được, hãy thử thanh lọc hoàn toàn mysql trước khi cài đặt qua DMG. Thực hiện theo các hướng dẫn sau: https://gist.github.com/vitorbritto/0555879fe4414d18569d


tôi cũng đã cài đặt qua tệp DMG, nhưng tôi vẫn gặp lỗi ổ cắm này. mysql --version hoạt động cho tôi và - trợ giúp, nhưng không có gì khác. Tôi đã thêm vào đường dẫn để các lệnh --version và --help hoạt động. bạn có thể vui lòng cung cấp một số lời khuyên? cảm ơn.
Spencer Trinh

Xem bản cập nhật về thanh trừng mysql trước. Đó là sửa nó cho bản thân tôi và một số đồng nghiệp.
Patrick

0

Thử cái này

rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7

0

Gặp phải một vấn đề tương tự sau khi nâng cấp lên hệ điều hành Catalina. Sau khi chạy lệnh mysqld, tôi thấy rằng có một số vấn đề với tệp nhật ký. Nó có thể khác nhau cho những người khác.

$ mysqld

Vấn đề là

2019-10-16T04:58:59.174474Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory
2019-10-16T04:58:59.174508Z 0 [ERROR] Aborting

Đã giải quyết nó bằng cách tạo ra nó và áp dụng các quyền thích hợp.

sudo mkdir -p /var/log/mysql
sudo touch /var/log/mysql/error.log
sudo chown -R _mysql:mysql /var/log/mysql/

Khởi động lại MySQL

brew services restart mysql@5.7

Vấn đề đã được giải quyết.

mysql -uroot -proot

0

Sau khi thử nhiều giải pháp, có vẻ như giải pháp cuối cùng đã thực hiện được là kết nối bằng IP. Không còn ổ cắm tập tin bị xóa ngẫu nhiên.

Chỉ cần cập nhật cấu hình máy khách MySQL của bạn (ví dụ /usr/local/etc/my.cnf) với:

[client]
port = 3306
host=127.0.0.1
protocol=tcp

-4
  1. Gỡ cài đặt MySQL.
  2. Loại bỏ /usr/local/var/mysql/.
  3. Cài đặt MySQL.

1
Điều này sẽ không thổi bay tất cả các cơ sở dữ liệu bạn có thể có? Có vẻ như là một giải pháp khá nặng tay đối với tôi, đặc biệt khi xem xét nó có lẽ chỉ là vấn đề của MySQL không chạy.
Martin Tournoij

đúng vậy, nhưng theo câu hỏi, đây là một bản cài đặt mới và do đó, giả định là sẽ có bất kỳ cơ sở dữ liệu nào.
Amod Kulkarni
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.