Cấu hình file my.ini

VỊ TRÍ VÀ CHỨC NĂNG CỦA FILE my.ini

  • file cấu hình chính của MySQL Server, chứa thông số khởi động, kết nối, bộ nhớ, logging và bảo mật.
  • Khi MySQL khởi động, nó đọc my.ini để xác định:
    • Port lắng nghe (mặc định 3306)
    • Thư mục chứa dữ liệu (datadir)
    • Đường dẫn log
    • Giới hạn kết nối và cache
    • Quyền truy cập qua IP

Vị trí thường gặp:

Hệ điều hành Đường dẫn mặc định
Windows C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
Linux /etc/mysql/my.cnf hoặc /etc/my.cnf

⚙️ 2. CẤU TRÚC CHÍNH CỦA FILE my.ini

File my.ini chia theo các nhóm cấu hình (section) — bắt đầu bằng [Tên_nhóm].

Ví dụ khung cấu hình chuẩn:

# ==============================
# MySQL Server Configuration
# ==============================

[client]
port=3306
default-character-set=utf8mb4

[mysqld]
port=3306
basedir="C:/Program Files/MySQL/MySQL Server 8.0/"
datadir="C:/ProgramData/MySQL/MySQL Server 8.0/Data/"
default_authentication_plugin=mysql_native_password

# --- Kết nối mạng ---
bind-address=0.0.0.0
skip-name-resolve=1

# --- Hiệu suất ---
max_connections=200
table_open_cache=4000
query_cache_size=0
tmp_table_size=64M
max_allowed_packet=64M
innodb_buffer_pool_size=1G
innodb_log_file_size=256M

# --- Ngôn ngữ & charset ---
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# --- Logging ---
log_error="C:/ProgramData/MySQL/MySQL Server 8.0/Data/error.log"
slow_query_log=1
slow_query_log_file="C:/ProgramData/MySQL/MySQL Server 8.0/Data/slow.log"
long_query_time=2

# --- Bảo mật ---
secure_file_priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"
local_infile=0

[mysql]
default-character-set=utf8mb4

🧠 3. GIẢI NGHĨA CÁC THÔNG SỐ QUAN TRỌNG

🔹 Nhóm Network & Connection

Tham số Ý nghĩa Gợi ý
port Cổng MySQL Mặc định 3306
bind-address Địa chỉ IP mà MySQL lắng nghe 0.0.0.0 để cho phép truy cập từ máy khác trong mạng LAN
skip-name-resolve Bỏ tra cứu DNS để tăng tốc kết nối 1 (nên bật)

🔹 Nhóm Performance

Tham số Ý nghĩa Gợi ý
max_connections Số kết nối đồng thời tối đa 200–500 tùy tải
innodb_buffer_pool_size RAM cấp cho InnoDB cache ~70% RAM nếu server chỉ chạy MySQL
tmp_table_size & max_heap_table_size Giới hạn bảng tạm 64M–256M tùy dung lượng
table_open_cache Số bảng giữ trong cache 2000–4000
query_cache_size Cache kết quả truy vấn (đã deprecated ở MySQL 8.0) =0 (tắt)

🔹 Nhóm Character Set

Tham số Ý nghĩa Giá trị khuyến nghị
character-set-server Mã hóa ký tự mặc định utf8mb4
collation-server Thứ tự sắp xếp ký tự utf8mb4_unicode_ci
default-character-set Áp dụng cho client utf8mb4

🔹 Nhóm Logging

Tham số Ý nghĩa Gợi ý
log_error File ghi lỗi hệ thống Bắt buộc bật
slow_query_log Ghi các truy vấn chạy lâu 1 để bật
long_query_time Ngưỡng thời gian (giây) 2–5s
slow_query_log_file Đường dẫn file log truy vấn chậm Tùy theo hệ thống

🔹 Nhóm Security

Tham số Ý nghĩa Gợi ý
local_infile Cho phép load file cục bộ (LOAD DATA LOCAL INFILE) 0 để tránh lỗ hổng
secure_file_priv Giới hạn thư mục import/export file Chỉ định rõ đường dẫn
default_authentication_plugin Kiểu xác thực user mysql_native_password nếu dùng tool cũ (như Workbench, PHPMyAdmin)

🧱 4. MẪU CẤU HÌNH CHUẨN CHO MẠNG NỘI BỘ (LAN SERVER)

Nếu bạn đang thiết lập server nội bộ trong LAN (192.168.x.x), nên dùng cấu hình như sau:

[mysqld]
port=3306
bind-address=0.0.0.0
skip-name-resolve=1
default_authentication_plugin=mysql_native_password

max_connections=300
innodb_buffer_pool_size=512M
tmp_table_size=128M
max_allowed_packet=128M

character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

log_error="C:/ProgramData/MySQL/MySQL Server 8.0/Data/error.log"
slow_query_log=1
slow_query_log_file="C:/ProgramData/MySQL/MySQL Server 8.0/Data/slow.log"
long_query_time=2

secure_file_priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"
local_infile=0

Sau khi chỉnh my.ini, cần restart MySQL Service:

  • Trên Windows:
    net stop mysql
    net start mysql
    
  • Hoặc qua Services.msc → MySQL80 → Restart.

🔍 5. KIỂM TRA SAU KHI CẤU HÌNH

Chạy các lệnh:

SHOW VARIABLES LIKE 'bind_address';
SHOW VARIABLES LIKE 'character_set_server';
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'secure_file_priv';

→ Xác nhận cấu hình đã được áp dụng.

✅ GỢI Ý QUẢN TRỊ THỰC TẾ

Tình huống Giải pháp trong my.ini
Không connect được từ máy khác bind-address=0.0.0.0skip-name-resolve=1
Server chậm khi nhiều user truy cập Tăng max_connections + innodb_buffer_pool_size
Lỗi tiếng Việt khi nhập/xuất dữ liệu Đặt utf8mb4 ở cả [client], [mysqld], [mysql]
Muốn theo dõi truy vấn chậm Bật slow_query_log
Muốn ngăn user import/export file lung tung Giới hạn secure_file_priv

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *