- ปัญหาคือ mysql insert แล้ว error ทั้งที่ column นั้น ตั้ง default เป็น 0000-00-00 แล้วนะ (date type)
- พยายาม insert โดยกำหนดค่า '0000-00-00' ไปให้ด้วยก็ยังไม่ได้อยู่ดี
- Note that a datetime value of midnight Jan 1, 1970 ('1970-01-01 00:00:00') is a "zero date". That will be evaluated to be '0000-00-00 00:00:00'
- ใช้ '1970-01-01' แทน หว่า แต่มันไม่เข้าท่า
- สุดท้ายเค้าบอกว่าให้ตั้งค่า sql mode ให้ใช้ 0000 ได้
- คอนฟิกบน Ubuntu 18.04
sudo nano /etc/msyql/my.cnf
- เพิ่มตามนี้เข้าไปในไฟล์
[mysqld]
# ... other stuff will probably be here
sql_mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
- จากนั้น save และ restart mysql
sudo systemctl reload apache2
- เพียงเท่านี้มันก็จะ insert ผ่านแล้ว
- https://stackoverflow.com/questions/35565128/mysql-incorrect-datetime-value-0000-00-00-000000/35565866
- https://www.sitepoint.com/quick-tip-how-to-permanently-change-sql-mode-in-mysql/
สวัสดีครับ หลังจากเพิ่ม sql_mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
ReplyDeleteพอ restart mysql service เจอ error ว่า
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for detail.
ไม่ทราบเกิดจากอะไรครับ ขอบคุณครับ
คอนฟิกไฟล์ น่าจะมีปัญหานะคับ ลองคำสั่งดู error => sudo systemctl status mysql.service หรือคำสั่ง sudo journalctl -xe ดูคับ
Delete