Linux Etc/GMT 与现实时GMT区对比

本文解析了在Linux系统中设定时区时遇到的常见误区,特别是关于GMT时区的正负号理解,揭示了其背后的历史原因,并提供了正确的设定方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于时区ETC/GMT设置问题:

当你使用Linux设定时区时,若是选用Etc底下的GMT时区,可能会发现设定的结果与你预想的不同,当你想设定北京的时区(GMT+8) ,但设定完后,系统时间却是-8的时区,和北京时间相差16小时,原因是因为Etc底下的GMT时区是以格林威治以西为正,以东为负,刚好与我们现实生活的认知相反

而原因只是因为当初Unix 多为西方人使用,便以西为正

因此在设定的时候需要选择正负相反的选项。
参考文档:
http://lemonlatte.logdown.com/tags/tzdata
Dkukoc运维学习参考:
https://www.dkukoc.com/

### 解决找不到 `/etc/my.cnf` 文件的问题 当尝试配置 MySQL 时区却无法找到 `/etc/my.cnf` 文件,可能存在多种原因。以下是几种常见情况及其对应的解决方案。 --- #### 情况一:MySQL 使用其他路径存储配置文件 并非所有的 MySQL 安装都会默认使用 `/etc/my.cnf` 文件作为其主要配置文件。某些安装可能会将配置文件放置在不同的位置,例如: - Windows 系统中常见的路径为 `C:\ProgramData\MySQL\MySQL Server X.X\my.ini` - Linux 系统中可能位于 `/etc/mysql/my.cnf`, `/usr/local/mysql/etc/my.cnf`, 或者直接不存在统一的全局配置文件[^1] 在这种情况下,可以通过以下 SQL 查询定位实际使用的配置文件路径: ```sql SHOW VARIABLES LIKE 'config_file'; ``` 如果查询结果显示为空或者未命中任何记录,则说明当前 MySQL 实例并未加载特定的配置文件。此可以选择手动创建一个新的配置文件,并将其置于适当的位置以便被识别。 --- #### 情况二:缺少必要的权限访问现有配置文件 即使存在 `/etc/my.cnf` 文件,但如果用户账户缺乏足够的读取权限也可能导致看似“丢失”的现象发生。可以尝试以超级管理员身份执行以下命令检查文件状态: ```bash ls -l /etc/my.cnf ``` 如果没有看到该文件列表项,那么很可能是由于权限不足造成的误判;反之则应进一步排查为何未能正常加载此文件内容。 针对此类问题,授予适当的文件访问权即可解决问题: ```bash sudo chmod u+r /etc/my.cnf ``` 随后重新启动 MySQL 服务确保更改生效: ```bash sudo systemctl restart mysql ``` --- #### 情况三:完全缺失自定义配置需求的支持环境 有些轻量级部署场景下,默认情况下根本就不会生成任何形式的手动可编辑型初始化参数集合文档(`*.cnf/*.ini`) 。 对于此种情形 , 可自行新建一个符合规范格式要求的新文件用于满足个性化定制目的之需 : 1. 创建新的配置文件 (Linux 下推荐命名为 `/etc/my.cnf`) ```bash sudo touch /etc/my.cnf sudo chown root:root /etc/my.cnf sudo chmod 644 /etc/my.cnf ``` 2. 添加基本配置条目 , 包括但不限于设置目标时区 : ```ini [mysqld] default-time_zone = '+8:0' [client] port = 3306 socket = /var/lib/mysql/mysql.sock [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid ``` 3. 应用更新后的配置并通过重启服务使其立即可用: ```bash sudo systemctl restart mysql ``` 最后可通过下面这条指令验证是否成功应用了所期望的变化: ```sql SELECT @@global.time_zone; ``` 若输出结果匹配设定值(即 CST/GMT+8),则表明一切运作良好[^3]。 --- ### 示例代码 假设需要强制指定中国标准间(CST, GMT+8)给整个 MySQL 系统,在未知确切原生配置文件所在目录的前提下,按照上述指导操作流程如下所示: 1. 查找现有的配置文件路径 ```sql SHOW VARIABLES LIKE 'config_file'; ``` 2. 若无有效反馈信息,则手工建立必要结构体实例化对象 ```bash echo "[mysqld]" | sudo tee -a /etc/my.cnf echo "default-time_zone='+8:0'" | sudo tee -a /etc/my.cnf sudo systemctl restart mysql ``` 3. 测试最终成果展示环节 ```sql SELECT NOW(), @@session.time_zone, @@global.time_zone; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值