Mất kết nối với máy chủ MySQL tại localhost:3306, lỗi hệ thống: không có kết nối

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ư

mysql -uname -p
ERROR 2002 (HY000): Can't connect to local MySQL server through 
  socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")

hoặc là

mysql -uname -p --port=3307 --protocol=tcp
ERROR 2003 (HY000): Can't connect to MySQL server on  'localhost' 
  (111 "Connection refused")

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 các tùy chọn , , và, 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 socket 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

netstat -ln | grep mysqld
unix  2      [ ACC ]     STREAM     LISTENING     33209505 /var/run/mysqld/mysqld.sock

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.

(/my/maria-10.4) ./client/mysql --host=myhost --protocol=tcp --port=3306 test
ERROR 2002 (HY000): Can't connect to MySQL server on 'myhost' (115)
(/my/maria-10.4) telnet myhost 3306
Trying 192.168.0.11...
telnet: connect to address 192.168.0.11: Connection refused
(/my/maria-10.4) perror 115
OS error code 115:  Operation now in progress

Để 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 về cách 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ụ:

mysql -uname -p --port=3307 --protocol=tcp
ERROR 2003 (HY000): Can't connect to MySQL server on  'localhost' 
  (111 "Connection refused")
0 không giống với
mysql -uname -p --port=3307 --protocol=tcp
ERROR 2003 (HY000): Can't connect to MySQL server on  'localhost' 
  (111 "Connection refused")
1. 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ụ,

mysql -uname -p --port=3307 --protocol=tcp
ERROR 2003 (HY000): Can't connect to MySQL server on  'localhost' 
  (111 "Connection refused")
2 thay vì chỉ
mysql -uname -p --port=3307 --protocol=tcp
ERROR 2003 (HY000): Can't connect to MySQL server on  'localhost' 
  (111 "Connection refused")
3;

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

________số 8_______

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ụ:

mysql -uname -p --port=3307 --protocol=tcp
ERROR 2003 (HY000): Can't connect to MySQL server on  'localhost' 
  (111 "Connection refused")
4 hoạt động nhưng không phải
mysql -uname -p --port=3307 --protocol=tcp
ERROR 2003 (HY000): Can't connect to MySQL server on  'localhost' 
  (111 "Connection refused")
5, 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)

Các tệp tùy chọn thường có thể bị chặn bằng tùy chọn

mysql -uname -p --port=3307 --protocol=tcp
ERROR 2003 (HY000): Can't connect to MySQL server on  'localhost' 
  (111 "Connection refused")
6, ví dụ

mysqlimport --no-defaults ...

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

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

mysql -uname -p --port=3307 --protocol=tcp
ERROR 2003 (HY000): Can't connect to MySQL server on  'localhost' 
  (111 "Connection refused")
7, 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ư

CREATE USER melisa identified by 'password';

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

select user,host from mysql.user where user='melisa';
+--------+------+
| user   | host |
+--------+------+
| melisa | %    |
+--------+------+

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

select user,host from mysql.user where user='melisa' or user='';
+--------+-----------+
| user   | host      |
+--------+-----------+
| melisa | %         |
|        | localhost |
+--------+-----------+

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

Không thể kết nối với MySQL trên localhost?

Dưới đây là một số lý do có thể xảy ra lỗi Không thể kết nối với máy chủ MySQL cục bộ. mysqld không chạy trên máy chủ cục bộ . Kiểm tra danh sách quy trình của hệ điều hành của bạn để đảm bảo có quy trình mysqld. Bạn đang chạy một máy chủ MySQL trên Windows với nhiều kết nối TCP/IP tới nó.

Tại sao MySQL liên tục mất kết nối?

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 . Theo mặc định, máy chủ sẽ đóng kết nối sau 8 giờ nếu không có gì xảy ra. Bạn có thể thay đổi giới hạn thời gian bằng cách đặt biến wait_timeout khi khởi động mysqld.

Làm cách nào để khắc phục lỗi mất kết nối với máy chủ MySQL khi đọc gói liên lạc ban đầu?

Xác minh rằng MySQL đang chạy trên địa chỉ IP của máy chủ . Sau đó, đảm bảo rằng MySQL đang lắng nghe trên cổng 3306. Đảm bảo rằng người dùng có quyền kết nối với IP máy chủ. Đảm bảo rằng chúng tôi đang sử dụng đúng mật khẩu để kết nối từ địa chỉ máy chủ lưu trữ mà chúng tôi đang kết nối nếu mật khẩu được yêu cầu.

Làm cách nào để kết nối máy chủ MySQL với máy chủ cục bộ?

Điều này có thể được thực hiện với hàm mysql_connect PHP. $mysqli = new mysqli("localhost", $username, $password, $database); Với dòng này, PHP kết nối với máy chủ cơ sở dữ liệu MySQL tại localhost . Sau khi kết nối được thiết lập, bạn nên chọn cơ sở dữ liệu bạn muốn sử dụng.