-
Giới thiệu và khởi tạo môi trường MySQL
- Hướng dẫn cài đặt và cấu hình MySQL Server trên Windows cho kết nối từ xa
- Vận dụng tư duy phân tích dữ liệu với Mysql từ cơ bản đến nâng cao
- Vận dụng tư duy phân tích quản trị dữ liệu với MySQL
- Tối ưu hoá công việc quản trị với view và bảng tạm
- Tôi ưu hoá với thủ tục – procedure trong mysql
- Nhóm hàm windown
- Con trỏ và phân vùng trong mysql
- Làm việc với hàm tự tạo trong Mysql
- Làm việc với trigger trong Mysql
- Làm việc với giao dịch
- Tìm hiểu về truy vấn động
- Even – Sự kiện định kỳ trong Mysql
-
Quản trị dữ liệu trong doanh nghiệp
- Tổng quan về trục quản trị dữ liệu
- Quản trị & Giám sát hệ thống với cơ sở dữ liệu ảo information_schema
- Cấu hình và lưu trữ
- Cấu hình file my.ini
- An toàn và toàn vẹn dữ liệu – Bảo mật – Backup
- Hiệu năng và tối ưu hoá
- Đồng bộ và phục hồi
- Phân tích tối ưu hoá hiệu năng với dữ liệu bảng performance_schema
-
Chiến lược quản trị dữ liệu
Cấu hình file my.ini
VỊ TRÍ VÀ CHỨC NĂNG CỦA FILE my.ini
- Là 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.0 và skip-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 |