ฟีเจอร์ที่ถูกลบ (Removed Features) ใน MySQL 8.0
1. InnoDB: innodb_locks_unsafe_for_binlog
- System Variable ถูกลบ
- ทางเลือก: ใช้ Isolation Level
READ COMMITTEDแทน
2. INFORMATION_SCHEMA Views (InnoDB)
- View เก่าเปลี่ยนชื่อ/โครงสร้างใน 8.0.3+
- ต้องอัปเดต Script ที่อ้างอิง View เหล่านี้
3. Account Management: GRANT สร้าง User
GRANT ... TO 'user'@'host'ไม่สร้าง User ใหม่ได้อีก- ใช้
CREATE USER 'user'@'host' IDENTIFIED BY 'password'แทน - จากนั้นค่อย
GRANT privileges ON db.* TO 'user'@'host'
4. Query Cache
- Query Cache ถูกลบสมบูรณ์ (Deprecated ใน 5.7, Removed ใน 8.0)
- รายการเกี่ยวกับ Query Cache:
query_cache_type,query_cache_size,Qcache_*Status Variables — ทั้งหมดไม่มีผล/ถูกลบ - ทางเลือก: ใช้ Application-Level Cache (Redis, Memcached) หรือ ProxySQL
5. Data Dictionary: --ignore-db-dir
- Data Dictionary ใหม่จัดการ Metadata เอง — ไม่สแกน Directory
--ignore-db-dirและignore_db_dirsถูกลบ
6. Transaction Variables: tx_isolation, tx_read_only
- ถูกลบ → ใช้
transaction_isolationและtransaction_read_onlyแทน
7. Authentication: secure_auth, multi_range_count
- System Variables และ Client Options ถูกลบ
- MySQL 8.0 ใช้
caching_sha2_passwordเป็น Default
8. Logging: log_warnings
log_warningsและ--log-warningsถูกลบ- ใช้
log_error_verbosityแทน (ค่า 1=Errors, 2=Warnings, 3=Notes)
9. NULL Literal: \N
- Parser ไม่จัดว่า
\N= NULL ใน SQL Statements อีกต่อไป - ต้องใช้
NULLตรงๆ
10. PROCEDURE ANALYSE()
- Syntax ถูกลบ
- ทางเลือก: ใช้
ANALYZE TABLEหรือEXPLAIN ANALYZE
11. --temp-pool Server Option
- ถูกลบ (เกี่ยวกับ Temporary File Handling)
12. ignore_builtin_innodb
- System Variable ถูกลบ (InnoDB เป็น Built-in แล้ว)
13. resolveip Utility
- ถูกลบ → ใช้
nslookup,host,digแทน
14. DTrace Support
- ถูกลบ
15. JSON_APPEND()
- ถูกลบ → ใช้
JSON_ARRAY_APPEND()แทน
Checklist ก่อน Upgrade ไป 8.0
- ตรวจสอบ Application ใช้ GRANT สร้าง User → เปลี่ยนเป็น CREATE USER
- ตรวจสอบ Query Cache Settings → ลบออกจาก my.cnf
- ตรวจสอบ Script ใช้ INFORMATION_SCHEMA InnoDB Views เก่า → อัปเดต
- ตรวจสอบ tx_isolation, tx_read_only → เปลี่ยนชื่อ
- ตรวจสอบ \N ใน SQL → เปลี่ยนเป็น NULL
- ตรวจสอบ JSON_APPEND() → เปลี่ยนเป็น JSON_ARRAY_APPEND()
- Test Application บน Staging ก่อน Production