Skip-name-resolve=1

Configure your accounts with ip or subnets only, then update your configuration with skip-name-resolve=1
Đây là khuyến nghị chung khi bạn sử dụng mysqltuner để tối ưu hóa database. Dịch sang tiếng việt nôm na là: Định cấu hình các tài khoản của bạn chỉ bằng ip hoặc mạng con, sau đó cập nhật cấu hình của bạn với skip-name-resolve=1

skip-name-resolve và DNS lookups

Việc tra cứu DNS (DNS lookups) cho các máy chủ MYSQL hầu như không cần thiết, vì chúng chỉ thêm các bước gỡ rối bổ sung để hoàn thành truy vấn.

Nói một cách rõ ràng, khi bạn sử dụng localhost hoặc server.hostname.com trong biến máy chủ cơ sở dữ liệu của mình, bạn đang nói với MySQL rằng nó sẽ giải quyết tên máy chủ đó bằng cách sử dụng tra cứu DNS.

Lệnh cấp quyền của MySQL cho phép bạn không chỉ cấp quyền cho tên máy chủ mà còn cả địa chỉ IP, đó là lý do tại sao sử dụng 127.0.0.1 (máy chủ cục bộ) hoặc IP máy chủ từ xa (Remote database) là một ý tưởng không tồi.

Khi bạn có một vài người dùng thực hiện thao tác phân giải DNS, nó có thể trong tầm kiểm soát, nhưng khi bạn có vài trăm hoặc hàng nghìn kết nối, điều này sẽ trở thành một vấn đề thực sự.

Bạn đã tắt DNS đảo ngược MySQL chưa? Nếu không, hãy tiếp tục đọc để skip-name-resolve

skip-name-resolve: làm cách nào tôi có thể tắt tính năng này?

Trên thực tế, việc khắc phục sự cố này thực sự dễ dàng, vì đây là cấu hình MySQL phía máy chủ, nó sẽ ảnh hưởng đến tất cả cơ sở dữ liệu của bạn.

:warning: Trước khi thay đổi điều này, hãy đảm bảo tất cả người dùng của bạn có đặc quyền kết nối bằng địa chỉ IP, thay vì tên máy chủ.
Điều này là bắt buộc nếu bạn sử dụng máy chủ từ xa.

Mở tệp my.cnf, nó thường nằm ở /etc/my.cnf

Tìm khối [mysqld] và thêm dòng này vào cấu hình MySQL của bạn:

# Skip reverse DNS lookup 
skip-name-resolve=1

Lưu tệp và khởi động lại MySQL hoặc MariaDB

service mysql restart

Vậy là xong, bây giờ tất cả các kết nối MySQL của bạn bây giờ sẽ nhanh hơn. Nếu bạn chạy lại mysqltuner sẽ không còn cảnh báo đó nữa.

Điều gì thay đổi sau khi tôi đặt skip-name-resolve trong my.cnf?

Chỉ thị skip-name-resolve cho phép MySQL tránh phản hồi tra cứu DNS khi kiểm tra các kết nối máy khách với máy chủ MySQL. Bằng cách này, máy chủ MYSQL của bạn sẽ chỉ sử dụng địa chỉ IP, thay vì tên máy chủ.

Nếu bạn chọn sử dụng skip-name-resolve, hãy đảm bảo rằng đặc quyền kết nối MYSQL của bạn được đặt để cho phép IP chứ không phải máy chủ.

Trên hầu hết các hệ thống, đối với Máy chủ MySQL cục bộ, bạn sẽ cần sử dụng host=127.0.0.1 cho ipv4 và host=::1 cho mạng ipv6, thay vì host=localhost.

:link: Nếu bạn có người dùng theo tên máy chủ, sẽ có cảnh báo khi khởi động mysql. Nếu bạn muốn xóa cảnh báo này, hãy xem bài Cảnh báo mục nhập người dùng bị bỏ qua trong nhật ký lỗi mysql