ERROR 2003 (HY000): Không thể kết nối với máy chủ MySQL trên '127.0.0.1' (111)


135

Tôi sử dụng lệnh sau:

mysql -u root -h 127.0.0.1 -p

và thông báo lỗi là:

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

Ai có thể giúp tôi sửa nó?


3
Daemon mysql có chạy không? Bạn đã có một tường lửa? Bạn có thể telnet đến mysql cổng mặc định là 306 không - telnet localhost 3306
mmmmmm

daemon mysql đang chạy. Tôi chắc chắn.
Charlie Epps

1
Có phải chỉ tôi hoặc nếu bạn đang kết nối với máy chủ mysql cục bộ, bạn không cần chỉ định máy chủ, ví dụ: mysql -u root -p sẽ hoạt động?
RMcLeod

chỉ để đảm bảo, bạn đang cố gắng kết nối với máy chủ db cục bộ?
John Kane

Tôi mới cài đặt mysql trên ubfox-12.04.2. Phiên bản là 14,14 Distrib 5.5.32, đối với debian-linux-gnu (x86_64) sử dụng readline 6.2, cấu hình mặc định của nó không chứa 'bỏ qua mạng'. Vì vậy, bạn sẽ không gặp phải lỗi với phiên bản này.

Câu trả lời:


220

Nếu bạn đang sử dụng ubuntu, bạn phải sử dụng các bước sau để tránh lỗi này (nếu không bật sao chép):

  1. chạy lệnh vim /etc/mysql/my.cnf
  2. bình luận bind-address = 127.0.0.1bằng ký hiệu #
  3. khởi động lại máy chủ mysql của bạn một lần.

Cập nhật

Ở Bước 1, nếu bạn không thể tìm thấy bind-addresstrong my.cnftệp, hãy tìm /etc/mysql/mysql.conf.d/mysqld.cnftệp đó trong tệp.

Cập nhật trong trường hợp sao chép MySQL được kích hoạt

Hãy thử kết nối máy chủ MySQL IPmà máy chủ MySQL được liên kết trong 'my.cnf instead oflocalhost hoặc 127.0.0.1`.


8
Cảm ơn bạn!!! Tôi đã cố gắng để tìm ra điều này trong một thời gian dài! Tôi nhận xét dòng đó, lưu tệp, và sau đó chạy service mysql restart. Và bây giờ nó hoạt động!
Ryan

Trong trường hợp của tôi, tôi đã có địa chỉ của máy chủ thay vì 127.0.0.1 cho địa chỉ liên kết. Nếu đây là trường hợp của bạn, bạn cũng sẽ cần phải nhận xét điều đó.
Vlad Schnakovszki

4
Không có bind-address = 127.0.0.1trong/etc/mysql/my.cnf
RegarBoy

6
@developer, tôi đã tìm thấy của tôi ở đây: /etc/mysql/mysql.conf.d/mysqld.cnf
một lần vào

Tôi đã thay đổi địa chỉ liên kết = <ip máy chủ chính>, nhưng không thể khởi động lại mysql.
Avi Kehat

14

Hãy thử localhostthay vì 127.0.0.1để kết nối hoặc trong của bạn connection-config. Làm việc cho tôi trên máy chủ Debian Squeeze


FYI nếu bạn chỉ định localhost, điều đó sẽ cho Mysql kết nối thông qua ổ cắm unix (/var/run/mysqld/mysqld.sock trên ubfox) chứ không phải qua ổ cắm TCP.
Công tước

8

Điều này xảy ra khi bạn quên khởi động cơ sở dữ liệu trước khi kết nối với nó:

mysql.server start

sau đó

mysql -u root -p -h 127.0.0.1

trong thiết bị đầu cuối trên mac và linux. Tôi tin rằng nó giống nhau trong windows CMD nhưng tôi không chắc chắn.
Henry

Tôi đã phải khởi động máy chủ MySQL bằng cách sử dụng sudo service mysqld starttrong phiên bản AWS EC2 của mình với Máy chủ cộng đồng MySQL.
khắc nghiệt

6

Trong trường hợp của tôi (kết nối từ xa) đã giúp tắt tường lửa trên máy chủ.

service iptables stop

@ram Có lẽ bạn đang sử dụng một số tường lửa khác. Hoặc vấn đề của bạn không phải là một tường lửa. Kiểm tra tài liệu cho bản phân phối linux của bạn.
Bunyk

1
@ram thửservice firewalld stop
Maxim Mazurok

1
MySQL thường chạy trên cổng 3306, vì vậy hãy thêm nó vào tường lửa của bạn
Kurdtpage

6

Sự cố này có thể xảy ra do máy chủ MySQL của bạn chưa được cài đặt và đang chạy. Để làm điều đó bắt đầu nhắc lệnh với tư cách quản trị viên và nhập lệnh:

"C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --install

Nếu bạn nhận được thông báo "dịch vụ được cài đặt thành công" thì bạn cần khởi động dịch vụ MySQL. Để làm điều đó: đi đến cửa sổ Dịch vụ (Trình quản lý tác vụ -> Dịch vụ -> Dịch vụ mở) Tìm kiếm MySQL và Bắt đầu từ thanh điều hướng trên cùng. Sau đó, nếu cố gắng mở mysql.exe, nó sẽ hoạt động.


2
Một chút sai lầm, cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin" và sau đó mysqld --install. Ngoài ra số lượng máy chủ phụ thuộc vào tải xuống.
Dejazmach

Làm điều này đã khắc phục vấn đề của tôi
Steffi Keran Rani J

6

nhìn vào my.cnftệp, nếu có [client]phần và portkhác với cổng nghe thực (mặc định 3306), bạn phải kết nối máy chủ với tham số rõ ràng -P 3306, ví dụ:

gốc mys -u -h 127.0.0.1 -p -P 3306


tôi có thể tìm kiếm ở my.cnfđâu Nó không có trong máy chủ wamp, trong máy tính xách tay của tôi
Deepak Keynes

Trên các cửa sổ, nó thường gọi là 'my.ini'
Yu Jiaao

Đối với tôi cổng là vấn đề. Cảm ơn
Chandra Eskay

0

Bạn cần thay đổi tham số địa chỉ liên kết thành 127.0.0.1 trong tệp cấu hình mysql (my.ini hoặc my.cnf) hoặc sử dụng tham số được xác định ở đó.

Nếu điều đó không hiệu quả, bạn nên kiểm tra xem dịch vụ mysql có thực sự đang chạy không.


1
Tôi đã thêm dòng "bind-address = 127.0.0.1" vào tệp my.cnf. Nhưng nó không hoạt động.
Charlie Epps

2
Nếu dòng này có mặt, mysql sẽ chỉ nghe địa chỉ được liệt kê. Để cho phép truy cập từ xa, bạn nên XÓA dòng này. Hãy nhận biết ý nghĩa bảo mật này có.
webkraller

việc thêm bind-address =127.0.0.1vào my.cnf sẽ vô hiệu hóa kết nối từ xa vào DB. Vì vậy, ngay cả khi nó sẽ hoạt động (mà nó không hoạt động) - đó không phải là một giải pháp tốt.
alfasin

Địa chỉ liên kết phải là 0.0.0.0 trừ khi bạn không muốn ai khác kết nối.
Hầu tước Lorne

0

Trong trường hợp bạn đang chạy trên một cổng không mặc định, bạn có thể thử sử dụng --port=<port num> được cung cấp --skip-networkingnot enabled.


0

Tôi chỉ gặp vấn đề này .... chạy trong Win7 và máy chủ wamp ... sau khi đọc nó

Tìm thấy rằng Antivirus Firewall đã gây ra vấn đề.


0

Tôi cũng đã đối mặt với vấn đề tương tự. Sau đây đã giúp tôi khắc phục sự cố, chuyển đến bảng điều khiển-> Công cụ quản trị -> dịch vụ bên trong này chắc chắn bạn sẽ thấy dịch vụ MySQL: nhấp chuột phải và nói bắt đầu (bắt đầu bắt buộc).


0

Đối với người dùng Docker - Khi cố gắng kết nối sql cục bộ bằng cách sử dụngmysql -u root -h 127.0.0.1 -pvà cơ sở dữ liệu của bạn đang chạy trên Docker container, hãy đảm bảo rằng dịch vụ mysql đã hoạt động (xác minh bằng cách sử dụngdocker psvà cũng kiểm tra xem bạn có đang ở đúng cổng không), nếu container đó là xuống sẽ gặp lỗi kết nối.

Thực hành tốt nhất là cài đặt ip /etc/hoststrên máy của bạn:

127.0.0.1 db.local

và chạy nó bằng mysql -u root -h db.local -p


0

Hãy thử không tắt iptables và mở cổng 3306.

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

hoặc sudo ufw allow 3306nếu bạn sử dụng ufw.

kiểm tra: netstat -lnp | grep mysqlbạn sẽ nhận được sth như thế:

cp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2048/mysqld         
tcp6       0      0 :::33060                :::*                    LISTEN      2048/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     514961   2048/mysqld          /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     514987   2048/mysqld          /var/run/mysqld/mysqlx.sock

nếu bạn có null thì xóa # trước port = 3306 trong tệp cnf.


0

Vui lòng đảm bảo rằng máy chủ MySql của bạn đang chạy trên localhost.

Trên Linux

Để kiểm tra xem máy chủ MySql có đang chạy không:

sudo service mysql status

Để chạy máy chủ MySql:

sudo service mysql start

Trên Windows

Để kiểm tra xem máy chủ MySql có đang chạy không:

C:\Windows\system32>net start

Nếu MySql không có trong danh sách, bạn phải khởi động / chạy MySql.

Để chạy máy chủ MySql:

C:\Windows\system32>net start mysql

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


-1

Tôi đã thay đổi thư mục cài đặt khi cài đặt lại, và nó đã hoạt động.


-2

Tôi vừa khởi động lại máy chủ mysql của tôi và sự cố đã được giải quyết trong windows net dừng MySQL sau đó khởi động mạng MySQl ub Ubuntu linux sudo dịch vụ bắt đầu mysql

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.