Problems when working with MySQL
🚀 Install MySQL on macOS
1. Cài qua bộ cài chính thức của MySQL
Truy cập: https://dev.mysql.com/downloads/mysql
Chọn:
- Hệ điều hành: macOS
- Platform: macOS 15 (x86, ARM)
💡 Mở Terminal và chạy:
uname -m
để xác định loại chip:
x86_64
→ Intelarm64
→ Apple Silicon (M1, M2, M3...)
Các thành phần được cài:
- MySQL Server
- MySQL Preference Pane (trong System Preferences để bật/tắt server)
- MySQL Client
Sau khi cài xong:
- Mở System Preferences → MySQL để bật MySQL Server.
2. Thêm MySQL vào PATH
Để sử dụng mysql
từ Terminal:
echo 'export PATH="/usr/local/mysql/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
3. Đăng nhập MySQL
- Username mặc định:
root
- Password: do bạn đặt trong lúc cài đặt
4. Kết nối bằng MySQL Workbench
Nếu chưa cài: tải tại https://dev.mysql.com/downloads/workbench
-
Mở MySQL Workbench
-
Nhấn dấu
+
để tạo kết nối mới -
Điền thông tin:
- Hostname:
127.0.0.1
- Port:
3306
- Username:
root
- Password: mật khẩu đã cài ở bước install
- Hostname:
5. Import .sql
bằng Terminal
Tạo database:
mysql -u root -p -e "CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
test
: là tên của databaseutf8mb4
: charset hỗ trợ đầy đủ tiếng Việt và emojiutf8mb4_general_ci
: collation
Nhập mật khẩu đã set ở bước cài đặt khi được hỏi
Import database:
mysql -u root -p test < "/xx/yyy/zzz/yyy_18072025/yyyy_20250718.sql"
🚀 TIPS - TRICK
Xác định encoding của file CSV
file -I yourfile.csv
Sử dụng LIMIT, WHERE, ORDER BY
Sử dụng các trong truy vấn kiểm tra giúp:
- Tối ưu hiệu suất (tránh quét bảng lớn).
- Đảm bảo kết quả đúng logic (ví dụ: lấy bản ghi mới nhất, cao nhất, gần nhất...)
SELECT * FROM orders
WHERE status = 'confirmed'
ORDER BY created_at DESC
LIMIT 10;
Kiểm tra COUNT, NULL, duplicates
Các lỗi phổ biến là:
- Thiếu bản ghi (do filter hoặc join sai).
- Dư bản ghi (do join nhầm n-n hoặc join chồng).
- NULL không mong muốn.
-- Đếm bản ghi bị NULL
SELECT COUNT(*) FROM users WHERE email IS NULL;
-- Kiểm tra bản ghi trùng
SELECT name, COUNT(*) FROM products GROUP BY name HAVING COUNT(*) > 1;
🚀 Troubleshooting
❗ Problem: ERROR at line 1: Unknown command '\-'.
💥 Nguyên nhân:
- File
.sql
chứa ký tự không hợp lệ\-
hoặc\--
- Đây là lỗi thường gặp khi file được xuất ra bởi công cụ không chuẩn hoặc có escape sai
✅ Cách sửa:
Trường hợp file nhỏ:
- Mở file
.sql
bằng text editor như VS Code - Tìm và thay tất cả
\-
thành--
Trường hợp file lớn (>2GB):
Chạy trong Terminal:
sed 's/\\--/--/g; s/\\-/-/g' /path/to/yourfile.sql > /path/to/cleaned.sql
Sau đó import lại:
mysql -u root -p test < /path/to/cleaned.sql
❗ Problem: Unhandled exception: 'ascii' codec can't decode
✅ Cách sửa:
- Convert file từ csv sang sql để import.
tip
Cách 1 chỉ dành cho những file dung lượng nhỏ
- Mở file và save-as đúng với charset utf-8