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

! Bao gồm
!includedir /etc/mysql/mysql.conf.d/

# Các Thôn Số Log File File Conf

/etc/mysql/mysql.conf.d/mysqld.cnf

#General_Log_File = /var/log/mysql/mysql.log#general_log = 1# log - phải là rất ít mục.log_error = /var/log/mysql/error.log# slow_query_log = 1#slow_query_log_file = /var/log/mysql/mysql-slow.log#long_query_time = 2#log-reries-not-using-indexes
#general_log = 1
# Error log — should be very few entries.
log_error = /var/log/mysql/error.log
# Here you can see queries with especially long duration
#slow_query_log = 1
#slow_query_log_file = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes

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 max_allowed_packet byte, nó sẽ xảy ra lỗi ER_NET_PACKET_TOO_LARGE và đóng kết nối. Với một số máy khách, bạn cũng có thể gặp lỗi

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
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
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
0 error if the communication packet is too large.

Kiểm tra

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
1

MAX_ALLOWED_PACKET = 256M

Kiểm tra

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
2

Hiển thị các biến như ‘%tối đa%;

result:

MAX_ALLOWED_PACKET 268435456MAX_BINLOG_CACHE_SIZE 18446744073709547520MAX_BINLOG_SIZE 104857600MAX_BINLOG_STMT
max_binlog_cache_size 18446744073709547520
max_binlog_size 104857600
max_binlog_stmt_cache_size 18446744073709547520
max_connect_errors 100
max_connections 151

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ối

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

  • Danh tính của bạn và liệu bạn có thể xác minh nó bằng cách cung cấp thông tin phù hợp.

  • Cho dù tài khoản của bạn bị khóa hoặc mở khóa.

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

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
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:

  • Tên máy chủ khách hàng và tên người dùng khớp với các cột

    CREATE USER 'user_name'@'192.0.2.21/8';
    CREATE USER 'user_name'@'198.51.100.44/16';
    4 và
    CREATE USER 'user_name'@'192.0.2.21/8';
    CREATE USER 'user_name'@'198.51.100.44/16';
    5 trong một số hàng bảng
    CREATE USER 'user_name'@'192.0.2.21/8';
    CREATE USER 'user_name'@'198.51.100.44/16';
    3. Đối với các quy tắc điều chỉnh các giá trị cho phép
    CREATE USER 'user_name'@'192.0.2.21/8';
    CREATE USER 'user_name'@'198.51.100.44/16';
    4 và
    CREATE USER 'user_name'@'192.0.2.21/8';
    CREATE USER 'user_name'@'198.51.100.44/16';
    5, xem Phần & NBSP; 6.2.4, Chỉ định tên tài khoản.

  • Máy khách cung cấp thông tin đăng nhập được chỉ định trong hàng (ví dụ: mật khẩu), như được chỉ ra bởi cột

    CREATE USER 'user_name'@'192.0.2.21/8';
    CREATE USER 'user_name'@'198.51.100.44/16';
    9. Thông tin xác thực được giải thích bằng cách sử dụng plugin xác thực có tên trong cột
    CREATE USER 'user_name'@'192.0.2.0/255.255.255.0';
    CREATE USER 'user_name'@'198.51.0.0/255.255.0.0';
    0.

  • Hàng chỉ ra rằng tài khoản được mở khóa. Trạng thái khóa được ghi lại trong cột

    CREATE USER 'user_name'@'192.0.2.0/255.255.255.0';
    CREATE USER 'user_name'@'198.51.0.0/255.255.0.0';
    1, phải có giá trị
    CREATE USER 'user_name'@'192.0.2.0/255.255.255.0';
    CREATE USER 'user_name'@'198.51.0.0/255.255.0.0';
    2. Khóa tài khoản có thể được đặt hoặc thay đổi với câu lệnh
    CREATE USER 'user_name'@'192.0.2.0/255.255.255.0';
    CREATE USER 'user_name'@'198.51.0.0/255.255.0.0';
    3 hoặc
    CREATE USER 'user_name'@'192.0.2.0/255.255.255.0';
    CREATE USER 'user_name'@'198.51.0.0/255.255.0.0';
    4.

Danh tính của bạn dựa trên hai mẩu thông tin:

  • Tên người dùng MySQL của bạn.

  • Máy chủ khách hàng mà bạn kết nối.

Nếu giá trị cột

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
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ị
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
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
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
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

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
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
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
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

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
9 của bảng
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
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

+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
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
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
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ị

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
5 và
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
4 trong bảng
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
3 áp dụng cho các kết nối đến.

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
5 Giá trị
Giá trị
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
4
Kết nối cho phép
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
8
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
9
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
0, kết nối từ
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
1
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
2
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
9
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
0, kết nối từ
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
1
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
8
Bất kỳ người dùng nào, kết nối từ
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
1
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
6
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
2
Bất kỳ người dùng nào, kết nối từ
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
1
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
6
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
8
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
0, kết nối từ bất kỳ máy chủ nào
Bất kỳ người dùng nào, kết nối từ bất kỳ máy chủ nào
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
8
+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| %              | jeffrey  | ...
| h2.example.net |          | ...
+----------------+----------+-
1
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
0, kết nối từ bất kỳ máy chủ nào trong miền
+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| %              | jeffrey  | ...
| h2.example.net |          | ...
+----------------+----------+-
3
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
8
+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| %              | jeffrey  | ...
| h2.example.net |          | ...
+----------------+----------+-
5
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
0, kết nối từ
+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| %              | jeffrey  | ...
| h2.example.net |          | ...
+----------------+----------+-
7,
+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| %              | jeffrey  | ...
| h2.example.net |          | ...
+----------------+----------+-
8,
+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| %              | jeffrey  | ...
| h2.example.net |          | ...
+----------------+----------+-
9, v.v. Điều này có lẽ không hữu ích
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
8
+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| h2.example.net |          | ...
| %              | jeffrey  | ...
+----------------+----------+-
1
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
0, kết nối từ máy chủ với địa chỉ IP
+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| h2.example.net |          | ...
| %              | jeffrey  | ...
+----------------+----------+-
3
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-
8
+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| h2.example.net |          | ...
| %              | jeffrey  | ...
+----------------+----------+-
5
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
0, kết nối từ bất kỳ máy chủ nào trong mạng con
+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| h2.example.net |          | ...
| %              | jeffrey  | ...
+----------------+----------+-
7 class C

+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| h2.example.net |          | ...
| %              | jeffrey  | ...
+----------------+----------+-
9

Giống như ví dụ trước

  • Tên máy chủ máy khách và tên người dùng có thể khớp với nhiều hàng trong bảng

    CREATE USER 'user_name'@'192.0.2.21/8';
    CREATE USER 'user_name'@'198.51.100.44/16';
    3. Tập hợp các ví dụ trước cho thấy điều này: một số mục nhập hiển thị khớp với kết nối từ
    +-----------+----------+-
    | Host      | User     | ...
    +-----------+----------+-
    | localhost | root     | ...
    | localhost |          | ...
    | %         | jeffrey  | ...
    | %         | root     | ...
    +-----------+----------+-
    1 bằng
    +-----------+----------+-
    | Host      | User     | ...
    +-----------+----------+-
    | localhost | root     | ...
    | localhost |          | ...
    | %         | jeffrey  | ...
    | %         | root     | ...
    +-----------+----------+-
    0.

  • Khi có thể có nhiều trận đấu, máy chủ phải xác định sử dụng cái nào. Nó giải quyết vấn đề này như sau:

  • Bất cứ khi nào máy chủ đọc bảng

    CREATE USER 'user_name'@'192.0.2.21/8';
    CREATE USER 'user_name'@'198.51.100.44/16';
    3 vào bộ nhớ, nó sẽ sắp xếp các hàng.

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áy chủ sử dụng hàng đầu tiên phù hợp với tên máy chủ và tên người dùng máy khách.

  • Máy chủ sử dụng các quy tắc sắp xếp các hàng đặt hàng với các giá trị

    CREATE USER 'user_name'@'192.0.2.21/8';
    CREATE USER 'user_name'@'198.51.100.44/16';
    4 cụ thể nhất trước tiên:

    • Địa chỉ IP theo nghĩa đen và tên máy chủ là cụ thể nhất.

      CREATE USER 'user_name'@'127.0.0.1';
      CREATE USER 'user_name'@'198.51.100.44';
    • Trước MySQL 8.0.23, tính đặc hiệu của địa chỉ IP theo nghĩa đen không bị ảnh hưởng bởi việc liệu nó có netmask hay không, do đó

      mysql> SELECT CURRENT_USER();
      +----------------+
      | CURRENT_USER() |
      +----------------+
      | @localhost     |
      +----------------+
      5 và
      mysql> SELECT CURRENT_USER();
      +----------------+
      | CURRENT_USER() |
      +----------------+
      | @localhost     |
      +----------------+
      6 được coi là cụ thể như nhau. Kể từ MySQL 8.0.23, các tài khoản có địa chỉ IP trong phần máy chủ có thứ tự cụ thể này:

      CREATE USER 'user_name'@'192.0.2.21/8';
      CREATE USER 'user_name'@'198.51.100.44/16';
    • Các tài khoản có phần máy chủ được cung cấp dưới dạng địa chỉ IP:

      CREATE USER 'user_name'@'192.0.2.0/255.255.255.0';
      CREATE USER 'user_name'@'198.51.0.0/255.255.0.0';

  • Các tài khoản có phần máy chủ được đưa ra làm địa chỉ IP bằng ký hiệu CIDR:any host and is least specific.

  • Các tài khoản có phần máy chủ được cung cấp dưới dạng địa chỉ IP với mặt nạ mạng con:any host but sorts after

    +-----------+----------+-
    | Host      | User     | ...
    +-----------+----------+-
    | localhost | root     | ...
    | localhost |          | ...
    | %         | jeffrey  | ...
    | %         | root     | ...
    +-----------+----------+-
    6.

Mẫu

+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
6 có nghĩa là bất kỳ máy chủ nào và ít cụ thể nhất.

Chuỗi trống

+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
2 cũng có nghĩa là bất kỳ máy chủ nào nhưng sắp xếp sau
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
6.any user and is least specific, so for rows with the same
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
4 value, nonanonymous users sort before anonymous users.

Đối với các hàng có giá trị

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
4 và
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
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

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
3 trông như thế này:

+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-

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:

+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-

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ừ max_allowed_packet0 bằng ER_NET_PACKET_TOO_LARGE3, hai trong số các hàng từ bảng khớp: giá trị có giá trị

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
4 và
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
5 của ER_NET_PACKET_TOO_LARGE6 và
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
2, và một giá trị có giá trị
+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
6 và ER_NET_PACKET_TOO_LARGE9. Hàng ER_NET_PACKET_TOO_LARGE6 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

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
3 trông như thế này:

+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| %              | jeffrey  | ...
| h2.example.net |          | ...
+----------------+----------+-

Bảng được sắp xếp trông như thế này:

+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| h2.example.net |          | ...
| %              | jeffrey  | ...
+----------------+----------+-

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ừ

+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
1, trong khi hàng thứ hai khớp với kết nối bằng ER_NET_PACKET_TOO_LARGE3 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ừ

+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-
1 bởi ER_NET_PACKET_TOO_LARGE3 lần đầu tiên được khớp không phải bởi hàng chứa ER_NET_PACKET_TOO_LARGE9 dưới dạng giá trị cột
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
5, mà theo hàng không có tên người dùng. Do đó, ER_NET_PACKET_TOO_LARGE3 đượ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

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
09. . Giả sử rằng ER_NET_PACKET_TOO_LARGE3 kết nối và đưa ra truy vấn sau:

mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| @localhost     |
+----------------+

Kết quả hiển thị ở đây chỉ ra rằng hàng bảng

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
3 phù hợp có giá trị cột
CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
5 trống. Nói cách khác, máy chủ đang coi ER_NET_PACKET_TOO_LARGE3 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

CREATE USER 'user_name'@'192.0.2.21/8';
CREATE USER 'user_name'@'198.51.100.44/16';
3 và sắp xếp nó bằng tay để xem trận đấu đầu tiên được thực hiện ở đâu.