Deprecated = ยังทำงานได้ แต่อาจถูกลบในอนาคต
รายการ Deprecated Features
1. Character Set: utf8mb3
- Deprecated → ใช้
utf8mb4 แทน (รองรับ Emoji, Supplementary Characters)
utf8mb3 เป็น Alias ของ utf8 (3-byte max)
2. Authentication: sha256_password
- Deprecated → ใช้
caching_sha2_password แทน (Default ใน 8.0)
- ปลอดภัยกว่า และเร็วกว่า (Caching)
3. validate_password Plugin
- Implementation เปลี่ยน → ต้องใช้ Component Infrastructure
- อาจถูกลบในอนาคต
4. AUTO_INCREMENT บน FLOAT/DOUBLE
- Deprecated:
AUTO_INCREMENT สำหรับ FLOAT, DOUBLE
- Deprecated:
UNSIGNED สำหรับ FLOAT, DOUBLE, DECIMAL
- ใช้ INTEGER Types (INT, BIGINT) สำหรับ Auto-increment
5. ZEROFILL Attribute
- Deprecated สำหรับ Numeric Types
- ทางเลือก: ใช้
LPAD() ใน Application หรือ View
- ตัวอย่าง:
LPAD(id, 10, '0') → '0000000001'
6. || Operator สำหรับ String Concatenation
- Deprecated เว้นแต่จะ Enable
SQL_MODE=PIPES_AS_CONCAT
- ปกติ
|| = Logical OR
- ใช้
CONCAT() หรือ CONCAT_WS() แทน
7. JSON_MERGE()
- Deprecated → ใช้
JSON_MERGE_PRESERVE() แทน
JSON_MERGE_PATCH() สำหรับ Merge แบบ Overwrite
8. SELECT ... INTO Clause Position
- Deprecated:
SELECT ... INTO @var FROM table (INTO ท้าย)
- ใช้
SELECT ... INTO @var FROM table (INTO หลัง SELECT) แทน
- Standard SQL: INTO ก่อน FROM
9. FLUSH HOSTS
- Deprecated → ใช้
TRUNCATE TABLE performance_schema.host_cache;
- ต้องมีสิทธิ์ DROP บน Table นั้น
10. mysql_upgrade Client
- Deprecated → Upgrade Tasks ย้ายมาทำใน Server เอง (Auto)
- รัน
mysql_upgrade ไม่จำเป็นแล้ว
11. InnoDB Memcached Plugin
- Deprecated → อาจถูกลบ
- ทางเลือก: ใช้ Redis, Memcached แยกต่างหาก
12. mysql_upgrade_info File
- File ใน Data Directory ที่เก็บ Version
- Deprecated → อาจถูกลบ
13. Replication: relay_log_info_file, --master-info-file
- System Variable และ Option Deprecated
- ใช้ Crash-safe Replication Tables (Default ใน 8.0)
แนวทางการย้าย (Migration Guide)
- Audit: ใช้
mysqlcheck --check-upgrade หรือ Upgrade Checker Utility
- Test: รัน Application บน MySQL 8.0 Staging ด้วย
log_warnings=2 (เก่า) / log_error_verbosity=2 (ใหม่)
- Fix: แก้ Deprecated Usage ตามรายการข้างต้น
- Monitor: ดู Error Log หา Deprecation Warnings
แสดง Deprecation Warnings
SHOW WARNINGS;
-- หรือใน Error Log: [Warning] 'JSON_MERGE' is deprecated...