Hướng dẫn mysql log connections - kết nối nhật ký mysql
Hướng dẫn kiểm tra nhật ký & các Thôn. kết nối của mysql # Cấu hình tệp mysql Tệp cấu hình MySQL: /etc/mysql/mysql.cnf
# Các Thôn Số Log File File Conf /etc/mysql/mysql.conf.d/mysqld.cnf
Kiểm tra nhật ký cấu hình Các bằng truy vấn: KhI GHI LOG RA FILE mysql Can Chhmod -r Cho thư thư GHI GHI (Chủ sở hữu Neu Khong Phai La Mysql thi Mysql Khong GHI Log Duoc) # Gói cho phép tối đa Khi máy khách MySQL hoặc máy chủ MySQLD nhận được một gói lớn hơn 0 nếu gói giao tiếp quá lớn.mysqld server receives a packet bigger than max_allowed_packet bytes, it issues an ER_NET_PACKET_TOO_LARGE error and closes the connection. With some clients, you may also get a 0 error if the communication packet is too large.Kiểm tra 1
Kiểm tra 2
result:
MAX_ALLOWED_PACKET = 268435456 = 256 * 1024 * 1024 => Cập nhật Cách Giá trị: Sửa Trong File Conf, Khởi động lại MySQL. 6.2.6 & NBSP; Kiểm soát truy cập, Giai đoạn 1: Xác minh kết nốiKhi bạn cố gắng kết nối với máy chủ MySQL, máy chủ sẽ chấp nhận hoặc từ chối kết nối dựa trên các điều kiện này:
Máy chủ kiểm tra thông tin đăng nhập trước, sau đó là trạng thái khóa tài khoản. Một thất bại ở một trong hai bước khiến máy chủ từ chối hoàn toàn quyền truy cập cho bạn. Mặt khác, máy chủ chấp nhận kết nối và sau đó vào Giai đoạn 2 và chờ yêu cầu. Máy chủ thực hiện nhận dạng và thông tin đăng nhập bằng cách sử dụng các cột trong bảng 3, chỉ chấp nhận kết nối nếu các điều kiện này được thỏa mãn:
Danh tính của bạn dựa trên hai mẩu thông tin:
Nếu giá trị cột 5 là không liên quan, tên người dùng trong kết nối đến phải khớp chính xác. Nếu giá trị 5 trống, nó phù hợp với bất kỳ tên người dùng nào. Nếu hàng bảng 3 khớp với kết nối đến có tên người dùng trống, người dùng được coi là người dùng ẩn danh không có tên, không phải người dùng có tên mà máy khách thực sự chỉ định. Điều này có nghĩa là một tên người dùng trống được sử dụng để kiểm tra truy cập thêm trong thời gian kết nối (nghĩa là trong giai đoạn 2).Cột 9 có thể trống. Đây không phải là ký tự đại diện và không có nghĩa là bất kỳ mật khẩu nào khớp. Điều đó có nghĩa là người dùng phải kết nối mà không cần chỉ định mật khẩu. Phương thức xác thực được thực hiện bởi plugin xác thực máy khách có thể hoặc không thể sử dụng mật khẩu trong cột 9. Trong trường hợp này, có thể mật khẩu bên ngoài cũng được sử dụng để xác thực với máy chủ MySQL.Các giá trị mật khẩu không được lưu trữ trong cột 9 của bảng 3 được mã hóa. MySQL không lưu trữ mật khẩu như Cleartext cho bất cứ ai xem. Thay vào đó, mật khẩu được cung cấp bởi người dùng đang cố gắng kết nối được mã hóa (sử dụng phương thức băm mật khẩu được thực hiện bởi plugin xác thực tài khoản). Mật khẩu được mã hóa sau đó được sử dụng trong quá trình kết nối khi kiểm tra xem mật khẩu có chính xác không. Điều này được thực hiện mà không có mật khẩu được mã hóa bao giờ đi qua kết nối. Xem Phần & NBSP; 6.2.1, tên người dùng tài khoản và mật khẩu.Từ quan điểm của MySQL, mật khẩu được mã hóa là mật khẩu thực, vì vậy bạn không bao giờ nên cung cấp cho bất kỳ ai truy cập vào nó. Cụ thể, không cung cấp cho người dùng không quản lý đọc quyền truy cập vào các bảng trong cơ sở dữ liệu hệ thống 2.real password, so you should never give anyone access to it. In particular, do not give nonadministrative users read
access to tables in the 2 system database. Bảng sau đây cho thấy các kết hợp khác nhau của các giá trị 5 và 4 trong bảng 3 áp dụng cho các kết nối đến.
9Giống như ví dụ trước
Khi một khách hàng cố gắng kết nối, máy chủ nhìn qua các hàng theo thứ tự được sắp xếp.
Mẫu 6 có nghĩa là bất kỳ máy chủ nào và ít cụ thể nhất.Chuỗi trống 2 cũng có nghĩa là bất kỳ máy chủ nào nhưng sắp xếp sau 6.“any user” and is least specific, so for rows with the same 4 value, nonanonymous users sort before anonymous users. Đối với các hàng có giá trị 4 và 5 đặc trưng bằng nhau, thứ tự là không có tính xác định.Để xem nó hoạt động như thế nào, giả sử rằng bảng 3 trông như thế này:
Khi máy chủ đọc bảng vào bộ nhớ, nó sẽ sắp xếp các hàng bằng các quy tắc vừa mô tả. Kết quả sau khi phân loại có vẻ như sau:
Khi khách hàng cố gắng kết nối, máy chủ sẽ xem qua các hàng được sắp xếp và sử dụng trận đấu đầu tiên được tìm thấy. Đối với kết nối từ 4 và 5 của ER_NET_PACKET_TOO_LARGE 6 và 2, và một giá trị có giá trị 6 và ER_NET_PACKET_TOO_LARGE 9. Hàng ER_NET_PACKET_TOO_LARGE 6 xuất hiện đầu tiên theo thứ tự được sắp xếp, vì vậy đó là hàng mà máy chủ sử dụng.Đây là một ví dụ khác. Giả sử rằng bảng 3 trông như thế này:
Bảng được sắp xếp trông như thế này:
Hàng đầu tiên khớp với kết nối của bất kỳ người dùng nào từ 1, trong khi hàng thứ hai khớp với kết nối bằng ER_NET_PACKET_TOO_LARGE 3 từ bất kỳ máy chủ nào.Ghi chú Đó là một quan niệm sai lầm phổ biến khi nghĩ rằng, đối với một tên người dùng nhất định, tất cả các hàng có tên rõ ràng là người dùng được sử dụng trước tiên khi máy chủ cố gắng tìm một khớp cho kết nối. Đây không phải là sự thật. Ví dụ trước minh họa điều này, trong đó kết nối từ 1 bởi ER_NET_PACKET_TOO_LARGE 3 lần đầu tiên được khớp không phải bởi hàng chứa ER_NET_PACKET_TOO_LARGE 9 dưới dạng giá trị cột 5, mà theo hàng không có tên người dùng. Do đó, ER_NET_PACKET_TOO_LARGE 3 được xác thực như một người dùng ẩn danh, mặc dù anh ta đã chỉ định tên người dùng khi kết nối.Nếu bạn có thể kết nối với máy chủ, nhưng các đặc quyền của bạn không phải là những gì bạn mong đợi, có lẽ bạn đang được xác thực như một số tài khoản khác. Để tìm hiểu tài khoản nào mà máy chủ đã sử dụng để xác thực bạn, hãy sử dụng hàm 09. . Giả sử rằng ER_NET_PACKET_TOO_LARGE 3 kết nối và đưa ra truy vấn sau:
Kết quả hiển thị ở đây chỉ ra rằng hàng bảng 3 phù hợp có giá trị cột 5 trống. Nói cách khác, máy chủ đang coi ER_NET_PACKET_TOO_LARGE 3 như một người dùng ẩn danh.Một cách khác để chẩn đoán các vấn đề xác thực là in ra bảng 3 và sắp xếp nó bằng tay để xem trận đấu đầu tiên được thực hiện ở đâu. |