Múi giờ địa phương của bạn có thể khác với múi giờ MySQL của máy chủ của bạn. Điều đó làm cho việc diễn giải dữ liệu trong cơ sở dữ liệu của bạn trở nên rất khó khăn. Lý tưởng nhất là múi giờ của MySQL phải giống với múi giờ của bạn để xử lý dữ liệu hiệu quả hơn
Hướng dẫn này sẽ giúp bạn thay đổi múi giờ trên máy chủ MySQL của mình, giúp việc đọc nhật ký máy chủ và các dữ liệu khác trở nên dễ dàng và trực quan hơn
điều kiện tiên quyết
- Tài khoản người dùng có quyền root hoặc sudo
- Một máy chủ Linux chạy MySQL
- Tài khoản người dùng root cho cơ sở dữ liệu MySQL
- Một cửa sổ terminal/dòng lệnh [Ctrl-Alt-T, Search > Terminal]
- Kết nối SSH đến máy chủ của bạn [nếu làm việc từ xa]
Tìm Múi giờ MySQL hiện tại
Mở một cửa sổ đầu cuối. Nếu bạn đang làm việc từ xa, hãy kết nối với máy chủ của bạn qua SSH, sử dụng quyền root
Nhập thông tin sau để kiểm tra múi giờ toàn cầu hiện tại trong MySQL
sudo mysql –e “SELECT @@global.time_zone;”
Theo mặc định, hệ thống sẽ hiển thị giá trị SYSTEM cho múi giờ của bạn. Điều này chỉ ra rằng múi giờ trong MySQL được đồng bộ hóa với múi giờ của máy chủ
Để hiển thị dấu thời gian từ máy chủ, hãy nhập thông tin sau
date
Hệ thống sẽ hiển thị ngày, giờ và múi giờ của máy chủ. Ví dụ,
Tue Jan 21 11:33:35 MST 2020
Múi giờ được biểu thị bằng mã chữ cái. Trong trường hợp này, nó được đặt thành Giờ chuẩn miền núi [MST]
Hiển thị dấu thời gian từ máy chủ MySQL
sudo mysql –e “SELECT NOW[];”
Hệ thống sẽ hiển thị thời gian hiện tại trong MySQL
Thay đổi múi giờ trong MySQL
lựa chọn 1. Sử dụng lệnh SET GLOBAL time_zone
Sử dụng tùy chọn này để đặt giá trị GMT mới cho múi giờ MySQL toàn cầu của máy chủ
sudo mysql -e "SET GLOBAL time_zone = ‘-6:00’;"
Thay vì
date
1, hãy nhập giá trị GMT mà bạn mong muốn. Nếu thực hiện đúng, không có đầu ra phản hồiKiểm tra giá trị mới của cài đặt múi giờ MySQL trên máy chủ của bạn
sudo mysql -e "SELECT @@global.time_zone;"
Sau khi bạn thay đổi múi giờ, ngày giờ và dấu thời gian được lưu trữ trước đó sẽ không được cập nhật
Ghi chú. Lệnh
date
2 sửa đổi múi giờ toàn cầu trong MySQL trong suốt thời gian hoạt động của dịch vụ hiện tại. Khi dịch vụ MySQL được khởi động lại, cài đặt sẽ trở về mặc định [HỆ THỐNG]Vì lý do đó, một tùy chọn tốt hơn nhiều là đặt múi giờ bằng cách chỉnh sửa tệp cấu hình MySQL
Lựa chọn 2. Chỉnh sửa tệp cấu hình MySQL
Có thể thay đổi cài đặt MySQL bằng cách chỉnh sửa tệp chính của tôi. tập tin cấu hình cnf. Mở tệp để chỉnh sửa
________số 8_______Cuộn xuống phần
date
3 và tìm dòng date
4. Thay đổi giá trị date
5 thành giá trị GMT cho múi giờ bạn muốn. Lưu file và thoátTrong ví dụ bên dưới, chúng tôi đặt múi giờ của Máy chủ MySQL thành
date
6 [GMT +8]Ghi chú. Nếu bạn đang làm việc với một bản cài đặt MySQL mới, /etc/mysql/my. tệp cnf có thể không có bất kỳ cài đặt nào trong đó. Nếu đúng như vậy, hãy cuộn xuống cuối tài liệu và thêm phần sau
[mysqld] default-time-zone = "+00:00"
Thay vì
date
5, hãy nhập múi giờ bạn muốn định cấu hìnhKhởi động lại máy chủ MySQL để áp dụng các thay đổi
sudo service mysql restart
Kiểm tra lại múi giờ và thời gian hiện tại
sudo mysql –e “SELECT @@global.time_zone;”
sudo mysql –e “SELECT NOW[];”
Phần kết luận
Trong bài viết này, bạn đã học được hai phương pháp khác nhau để thay đổi múi giờ mặc định trong MySQL
Nếu bạn cũng cần đặt múi giờ trên máy chủ Ubuntu của mình, hãy tham khảo Cách đặt hoặc thay đổi múi giờ trên Ubuntu
Ví dụ
Chuyển đổi một giá trị thành kiểu dữ liệu DATE
CHỌN CHUYỂN ĐỔI["29-08-2017", NGÀY];
Định nghĩa và cách sử dụng
Hàm CONVERT[] chuyển đổi một giá trị thành kiểu dữ liệu hoặc bộ ký tự đã chỉ định
Mẹo. Ngoài ra, hãy xem hàm CAST[]
cú pháp
HOẶC
CHUYỂN ĐỔI [giá trị SỬ DỤNG bộ ký tự]
Giá trị tham số
Tham sốMô tảgiá trịBắt buộc. Giá trị của converttypeRequired. Kiểu dữ liệu để chuyển đổi thành. Có thể là một trong những điều sau đâyValueDescriptionDATEChuyển đổi giá trị thành DATE. Định dạng. "YYYY-MM-DD"DATETIMEChuyển đổi giá trị thành DATETIME. Định dạng. "YYYY-MM-DD HH. MM. SS"DECIMALChuyển đổi giá trị thành DECIMAL. Sử dụng các tham số M và D tùy chọn để chỉ định số chữ số tối đa [M] và số chữ số sau dấu thập phân [D]. TIMEChuyển đổi giá trị thành TIME. Định dạng. "HH. MM. SS"CHARChuyển đổi giá trị thành CHAR [chuỗi có độ dài cố định]NCHARChuyển đổi giá trị thành NCHAR [như CHAR, nhưng tạo chuỗi có bộ ký tự quốc gia]SIGNEDChuyển đổi giá trị thành SIGNED [số nguyên 64 bit có dấu]UNSIGNEDChuyển đổi giá trị thành UNSIGNED [số 64 không dấu . Bộ ký tự để chuyển đổi thành
chi tiết kỹ thuật
Thêm ví dụ
Ví dụ
Chuyển đổi một giá trị thành kiểu dữ liệu CHAR
CHỌN CHUYỂN ĐỔI[150, CHAR];
Tự mình thử »Ví dụ
Chuyển đổi một giá trị thành kiểu dữ liệu TIME
CHỌN CHUYỂN ĐỔI["14. 06. 10", THỜI GIAN];
Tự mình thử »Ví dụ
Chuyển đổi một giá trị thành bộ ký tự LATIN1
CHỌN CHUYỂN ĐỔI["W3Schools. com" SỬ DỤNG latin1];
Tự mình thử »