设置mysql时区表
# 检查时区表
mysql> SELECT COUNT(*) FROM mysql.time_zone_name;
# 导入时区表
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -p'1qaz@WSX' mysql
# mysql_tzinfo_to_sql: 是一个 MySQL 提供的实用程序,用于将时区信息转换为 SQL 语句。
# /usr/share/zoneinfo: 是 Linux 系统中存储时区数据的标准路径。这个目录包含了全世界各个时区的信息文件。
临时设置,重启后不生效
# 查看数据库的当前时间
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 14:50:21 |
+-----------+
1 row in set (0.00 sec)
# 查看当前时区
# time_zone: 数据库的时区
# system_time_zones: 系统的时区
mysql> show variables like "%time_zone%";
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | +08:00 |
+------------------+--------+
2 rows in set (0.00 sec)
# 修改mysql全局时区为北京时间,即我们所在的东8区
mysql> set global time_zone = '+8:00';
Query OK, 0 rows affected (0.00 sec)
# 修改当前会话时区
mysql> set time_zone = '+8:00';
Query OK, 0 rows affected (0.00 sec)
# 立即生效
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
永久生效
vim /etc/my.cnf # 在[mysqld]区域中加上
default-time_zone = '+8:00'
# 之后重启mysql使新时区生效