Bạn có ba cách để giải quyết vấn đề này.
mysql_tzinfo_to_sql chương trình tải các bảng múi giờ trong cơ sở dữ liệu mysql. Nó được sử dụng trên các hệ thống có cơ sở dữ liệu múi giờ (tập hợp các tệp mô tả múi giờ). Ví dụ về các hệ thống như vậy là Linux, FreeBSD, Solaris và OS X. Một vị trí có thể cho các tệp này là thư mục / usr / share / zoneinfo (/ usr / share / lib / zoneinfo trên Solaris). Nếu hệ thống của bạn không có cơ sở dữ liệu múi giờ, bạn có thể sử dụng gói có thể tải xuống được mô tả trong Phần 11.6, “Hỗ trợ múi giờ máy chủ MySQL”.
mysql_tzinfo_to_sql có thể được gọi theo một số cách:
shell> mysql_tzinfo_to_sql tz_dir
shell> mysql_tzinfo_to_sql tz_file tz_name
shell> mysql_tzinfo_to_sql --leap tz_file
Đối với cú pháp lời gọi đầu tiên, hãy chuyển tên đường dẫn thư mục zoneinfo đến mysql_tzinfo_to_sql và gửi đầu ra vào mysql chương trình. Ví dụ:
shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
mysql_tzinfo_to_sql đọc các tệp múi giờ của hệ thống của bạn và tạo các câu lệnh SQL từ chúng. mysql xử lý các câu lệnh đó để tải các bảng múi giờ.
Cú pháp thứ hai gây ra mysql_tzinfo_to_sql để tải một tệp múi giờ duy nhất tz_file tương ứng với tên múi giờ tz_name:
shell> mysql_tzinfo_to_sql tz_file tz_name | mysql -u root mysql
Nếu múi giờ của bạn cần tính đến giây nhuận, hãy gọi mysql_tzinfo_to_sql sử dụng cú pháp thứ ba, khởi tạo thông tin thứ hai. tz_file là tên của tệp múi giờ của bạn:
shell> mysql_tzinfo_to_sql --leap tz_file | mysql -u root mysql
Sau khi chạy mysql_tzinfo_to_sql , tốt nhất là khởi động lại máy chủ để máy chủ không tiếp tục sử dụng bất kỳ dữ liệu múi giờ nào đã lưu trong bộ nhớ cache trước đó.
source: https://dev.mysql .com / doc / refman / 5.7 / vi / mysql-tzinfo-to-sql.html
default-time-zone = +0:00
# default-time-zone = UTC
Điều này sẽ khiến nó kế thừa múi giờ từ HĐH.