LỖI 2002 HY000 không thể kết nối với máy chủ mysql trên db 115

Hướng dẫn này nhằm giải thích các bước cần thiết để giải quyết lỗi “ERROR 2003 (HY000). Không thể kết nối với máy chủ MySQL trên '127. 0. 0. 1’ (111)” có thể xảy ra khi bạn cố gắng truy cập máy chủ cơ sở dữ liệu MySQL

Trước khi tiếp tục, nếu bạn là người dùng Linux chưa quen với MySQL/MariaDB, thì bạn có thể cân nhắc học MySQL/MariaDB cho người mới bắt đầu – Phần 1 và 20 Lệnh MySQL (Mysqladmin) để quản trị cơ sở dữ liệu trong Linux.

Mặt khác, nếu bạn đã là người dùng MySQL trung cấp/có kinh nghiệm, thì bạn có thể nắm vững những 15 Mẹo Điều chỉnh và Tối ưu hóa Hiệu suất MySQL/MariaDB Hữu ích

Ghi chú. Đối với hướng dẫn này, giả định rằng bạn đã cài đặt máy chủ cơ sở dữ liệu mysql

Quay trở lại vấn đề chính, một số nguyên nhân có thể gây ra lỗi này là gì?

  1. Lỗi mạng đặc biệt nếu máy chủ cơ sở dữ liệu mysql đang chạy trên máy chủ từ xa
  2. Không có máy chủ mysql nào đang chạy trên máy chủ được đề cập
  3. Tường lửa chặn kết nối TCP-IP hoặc các lý do liên quan khác

Dưới đây là các bước cần thiết để đối phó với nó

1. Nếu máy chủ cơ sở dữ liệu nằm trên một máy từ xa, thì hãy thử kiểm tra kết nối máy khách-máy chủ bằng cách sử dụng lệnh

$ ps -Af | grep mysqld
5 chẳng hạn

$ ping server_ip_address
LỖI 2002 HY000 không thể kết nối với máy chủ mysql trên db 115
LỖI 2002 HY000 không thể kết nối với máy chủ mysql trên db 115
Máy chủ Ping

Sau khi có kết nối, hãy sử dụng lệnh

$ ps -Af | grep mysqld
0 bên dưới để hiển thị thông tin về lựa chọn các quy trình đang hoạt động, cùng với lệnh
$ ps -Af | grep mysqld
1 và lệnh grep, để kiểm tra xem trình nền mysql có đang chạy trên hệ thống của bạn không

$ ps -Af | grep mysqld

tùy chọn ở đâu

  1. $ ps -Af | grep mysqld
    
    2 – kích hoạt lựa chọn tất cả các quy trình
  2. $ ps -Af | grep mysqld
    
    3 – cho phép liệt kê định dạng đầy đủ
LỖI 2002 HY000 không thể kết nối với máy chủ mysql trên db 115
LỖI 2002 HY000 không thể kết nối với máy chủ mysql trên db 115
Kiểm tra quy trình MySQL

Nếu không có đầu ra từ lệnh trước, hãy khởi động dịch vụ mysql như sau

$ sudo systemctl start mysql.service
$ sudo systemctl start mariadb.service
OR
# sudo /etc/init.d/mysqld start

Sau khi bắt đầu dịch vụ mysql, hãy thử truy cập máy chủ cơ sở dữ liệu

$ mysql -u username -p -h host_address  

2. Nếu bạn vẫn gặp lỗi tương tự, hãy xác định cổng (mặc định là 3306) mà trình nền mysql đang lắng nghe bằng cách chạy lệnh netstat

________số 8

tùy chọn ở đâu

  1. $ ps -Af | grep mysqld
    
    4 – hiển thị các cổng nghe
  2. $ ps -Af | grep mysqld
    
    5 – cho phép hiển thị địa chỉ số
  3. $ ps -Af | grep mysqld
    
    6 – hiển thị PID và tên của chương trình sở hữu ổ cắm
LỖI 2002 HY000 không thể kết nối với máy chủ mysql trên db 115
LỖI 2002 HY000 không thể kết nối với máy chủ mysql trên db 115
Tìm số cổng MySQL

Do đó, hãy sử dụng tùy chọn

$ ps -Af | grep mysqld
7 để chỉ định cổng bạn nhìn thấy từ đầu ra ở trên khi truy cập máy chủ cơ sở dữ liệu

$ ps -Af | grep mysqld
3

3. Nếu tất cả các lệnh trên chạy thành công nhưng bạn vẫn thấy lỗi, hãy mở tệp cấu hình mysql

$ ps -Af | grep mysqld
4

Tìm dòng bên dưới và nhận xét nó bằng ký tự

$ ps -Af | grep mysqld
8

$ ps -Af | grep mysqld
6

Lưu tệp và thoát, sau đó khởi động lại dịch vụ mysql như vậy

$ sudo systemctl start mysql.service
$ sudo systemctl start mariadb.service
OR
# sudo /etc/init.d/mysqld start

Tuy nhiên, nếu bạn có tường lửaD hoặc Iptables đang chạy, hãy thử xem lại các dịch vụ tường lửa và mở cổng mysql, giả sử đó là tường lửa chặn các kết nối TCP-IP đến máy chủ mysql của bạn

Đó là tất cả. Bạn có biết các phương pháp khác hoặc có đề xuất để giải quyết lỗi kết nối MySQL ở trên không?

Nếu bạn hoàn toàn mới đối với MariaDB và cơ sở dữ liệu quan hệ, bạn có thể muốn bắt đầu với MariaDB Primer. Ngoài ra, đảm bảo rằng bạn hiểu các tham số kết nối được thảo luận trong bài viết Kết nối với MariaDB

Có một số vấn đề phổ biến có thể xảy ra khi kết nối với MariaDB

Nếu lỗi bạn nhận được giống như

$ ps -Af | grep mysqld
8

hoặc

$ ps -Af | grep mysqld
9

máy chủ không chạy hoặc không chạy trên cổng, ổ cắm hoặc đường ống được chỉ định. Đảm bảo rằng bạn đang sử dụng đúng tùy chọn máy chủ, cổng, đường ống, ổ cắm và giao thức hoặc cách khác, xem Tải, Cài đặt và Nâng cấp MariaDB, Bắt đầu và Dừng MariaDB hoặc Khắc phục Sự cố Cài đặt

Tệp ổ cắm có thể ở một đường dẫn không chuẩn. Trong trường hợp này, tùy chọn

$ ps -Af | grep mysqld
6 có thể được viết trong my. tập tin cnf. Kiểm tra xem giá trị của nó có giống nhau trong phần [mysqld] và [client] không;

Nếu không chắc tệp ổ cắm Unix đang chạy ở đâu, bạn có thể tìm ra tệp này chẳng hạn

$ ps -Af | grep mysqld
0

Thông thường, theo mặc định, máy chủ MariaDB không chấp nhận kết nối từ máy khách từ xa hoặc kết nối với tcp và tên máy chủ và phải được định cấu hình để cho phép những kết nối này.

$ ps -Af | grep mysqld
1

Để giải quyết vấn đề này, hãy xem Định cấu hình MariaDB để Truy cập Máy khách Từ xa

Lưu ý rằng từ MariaDB 10. 4. 3, plugin xác thực unix_socket được bật theo mặc định trên các hệ thống giống Unix. Điều này sử dụng thông tin xác thực của hệ điều hành khi kết nối với MariaDB thông qua tệp ổ cắm Unix cục bộ. Xem plugin xác thực unix_socket để biết hướng dẫn kết nối và chuyển sang xác thực dựa trên mật khẩu cũng như Xác thực từ MariaDB 10. 4 để biết tổng quan về MariaDB 10. 4 thay đổi

Xác thực được cấp cho một tổ hợp tên người dùng/máy chủ cụ thể. Ví dụ:

$ ps -Af | grep mysqld
90 không giống với
$ ps -Af | grep mysqld
91. Xem bài viết GRANT để biết chi tiết về việc cấp quyền

Mật khẩu được băm với chức năng MẬT KHẨU. Nếu bạn đã đặt mật khẩu bằng câu lệnh SET PASSWORD hoặc sử dụng INSERT hoặc UPDATE để cập nhật trực tiếp bảng quyền, thì phải sử dụng đồng thời chức năng PASSWORD. Ví dụ,

$ ps -Af | grep mysqld
92 thay vì chỉ
$ ps -Af | grep mysqld
93;

Nếu bảng cấp đã được thay đổi trực tiếp, mật khẩu mới hoặc dữ liệu xác thực sẽ không hoạt động ngay lập tức. Phải chạy câu lệnh FLUSH PRIVILEGES hoặc tùy chọn flush-privileges mysqladmin để các thay đổi có hiệu lực

Sự cố khi xuất kết quả truy vấn

Nếu bạn có thể chạy truy vấn thông thường, nhưng gặp lỗi xác thực khi chạy lệnh CHỌN. VÀO OUTFILE, CHỌN. INTO DUMPFILE hoặc LOAD DATA INFILE, bạn không có quyền ghi tệp vào máy chủ. Điều này yêu cầu đặc quyền FILE. Xem bài viết CẤP

Truy cập vào Máy chủ, nhưng không truy cập vào Cơ sở dữ liệu

Ví dụ: nếu bạn có thể kết nối với máy chủ nhưng không thể kết nối với cơ sở dữ liệu

$ ps -Af | grep mysqld
6

hoặc có thể kết nối với một cơ sở dữ liệu cụ thể nhưng không kết nối được với một cơ sở dữ liệu khác, ví dụ:

$ ps -Af | grep mysqld
94 hoạt động nhưng không phải
$ ps -Af | grep mysqld
95, bạn chưa được cấp quyền đối với cơ sở dữ liệu cụ thể. Xem bài viết CẤP

Tệp tùy chọn và biến môi trường

Có thể các tệp tùy chọn hoặc biến môi trường có thể cung cấp các tham số kết nối không chính xác. Kiểm tra các giá trị được cung cấp trong bất kỳ tệp tùy chọn nào mà ứng dụng khách bạn đang sử dụng đọc (xem Nhóm và Tệp cấu hình mysqld và tài liệu dành cho ứng dụng khách cụ thể mà bạn đang sử dụng - xem Ứng dụng khách và Tiện ích)

Ví dụ, các tệp tùy chọn thường có thể bị chặn bằng tùy chọn

$ ps -Af | grep mysqld
96

$ ps -Af | grep mysqld
0

Không thể kết nối với máy chủ đang chạy / Mất mật khẩu gốc

Nếu bạn không thể kết nối với máy chủ, chẳng hạn như vì bạn đã mất mật khẩu gốc, bạn có thể khởi động máy chủ mà không cần sử dụng các bảng đặc quyền bằng cách chạy tùy chọn

$ ps -Af | grep mysqld
97, cho phép người dùng truy cập đầy đủ vào tất cả các bảng. Sau đó, bạn có thể chạy FLUSH PRIVILEGES để tiếp tục sử dụng các bảng cấp, tiếp theo là SET PASSWORD để thay đổi mật khẩu cho tài khoản

máy chủ cục bộ và%

Bạn có thể đã tạo một người dùng với một cái gì đó như

$ ps -Af | grep mysqld
2

Điều này tạo ra một người dùng với máy chủ ký tự đại diện '%'

$ ps -Af | grep mysqld
3

Tuy nhiên, bạn vẫn có thể không đăng nhập được từ localhost. Một số thiết lập tạo người dùng ẩn danh, bao gồm cả máy chủ cục bộ. Vì vậy, các bản ghi sau tồn tại trong bảng người dùng

$ ps -Af | grep mysqld
4

Vì bạn đang kết nối từ máy chủ cục bộ nên thông tin đăng nhập ẩn danh, thay vì thông tin đăng nhập cho người dùng 'melisa', được sử dụng. Giải pháp là thêm người dùng mới cụ thể vào máy chủ cục bộ hoặc xóa người dùng máy chủ cục bộ ẩn danh

Khi kết nối với MySQL Nếu gặp lỗi Error 2002?

Lỗi (2002) Không thể kết nối với. thông thường có nghĩa là không có máy chủ MySQL nào đang chạy trên hệ thống hoặc bạn đang sử dụng tên tệp ổ cắm Unix hoặc số cổng TCP/IP không chính xác khi cố gắng kết nối với máy chủ.

Làm cách nào để kiểm tra xem MySQL có thể truy cập được trên cổng 3306 không?

Cách chính xác là sử dụng. sudo lsof -i. 3306 .

Không thể kết nối lại với MySQL sau 1 lần thử). Máy chủ MySQL đã biến mất?

Lý do phổ biến nhất dẫn đến lỗi máy chủ MySQL đã biến mất là máy chủ đã hết thời gian chờ và đóng kết nối . Trong trường hợp này, bạn thường nhận được một trong các mã lỗi sau (mã lỗi bạn nhận được phụ thuộc vào hệ điều hành). Khách hàng không thể gửi câu hỏi đến máy chủ.