Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Điều chỉnh cài đặt múi giờ mặc định trên RDS

Rất tiếc, không thể đặt default_timezone trong Nhóm tham số RDS DB, vì vậy nỗ lực của bạn đã đúng hướng.

$ rds-describe-db-parameters default | grep "time_zone"
DBPARAMETER  default_time_zone                                                                   engine-default  string   static   false

Để đặt giá trị toàn cục qua SET GLOBAL, bạn cần có đặc quyền SUPER không được cấp cho bạn với tư cách là người dùng RDS.

Cách duy nhất để đặt múi giờ là trên cơ sở mỗi kết nối

mysql> SET time_zone = timezone;

Trên máy của tôi, tôi đã thử US / Eastern thành công nhưng tôi có một thế hệ khá cũ đang chạy.

Để xác định múi giờ bạn có sẵn, hãy đăng nhập vào ô của bạn

mysql -h yourboxhost.rds.amazonaws.com -u <youruser> -p

và nhập

mysql> SELECT * FROM mysql.time_zone_name;

Bạn sẽ nhận được danh sách các tên múi giờ hợp lệ và đã cài đặt mà bạn có thể đặt trên phiên bản của mình

+----------------------------------------+--------------+
| Name                                   | Time_zone_id |
+----------------------------------------+--------------+
| Africa/Abidjan                         |            1 |
| Africa/Accra                           |            2 |
| Africa/Addis_Ababa                     |            3 |
| Africa/Algiers                         |            4 |
| Africa/Asmara                          |            5 |
| Africa/Asmera                          |            6 |
| Africa/Bamako                          |            7 |
| Africa/Bangui                          |            8 |
| Africa/Banjul                          |            9 |
| Africa/Bissau                          |           10 |
| Africa/Blantyre                        |           11 |
| Africa/Brazzaville                     |           12 |
| Africa/Bujumbura                       |           13 |
| Africa/Cairo                           |           14 |
etc...

Bạn phải đặt múi giờ mỗi lần bạn kết nối với máy chủ cơ sở dữ liệu của mình

Ví dụ:nếu bạn sử dụng tiện ích mở rộng php Mysqli, bạn có thể thực hiện việc này

$mysqli = mysqli_init();
mysqli_options($mysqli,MYSQLI_INIT_COMMAND,"SET time_zone = 'Africa/Brazzaville'" );
mysqli_real_connect($mysqli,$host, $user, $pass,$dbName) or die ('Unable to connect');

Nếu không, chỉ cần thủ công (trong điều kiện để trình kết nối cơ sở dữ liệu của bạn làm việc đó) thực thi SET time_zone = '<YOUR_DESIRED_TIMEZONE>' Truy vấn ngay sau khi bạn đã kết nối với cơ sở dữ liệu của mình



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết xuất MySQL theo truy vấn

  2. LỖI 1698 (28000):Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost'

  3. Cập nhật hàng loạt Sqlalchemy trong MySQL hoạt động rất chậm

  4. Bảng MySQL với cột TEXT

  5. Làm thế nào chúng ta có thể khác nhau giữa LEFT OUTER JOIN và Left Join