当前位置: 首页 > news >正文

网站解决访问量超载百度公司名称

网站解决访问量超载,百度公司名称,项目管理系统软件,网站类型分类有哪些你还在被以下问题困扰吗: MySQL 的安装规范中应该设置什么时区? JAVA 应用读取到的时间和北京时间差了 14 个小时,为什么?怎么解决? 已经运行一段时间的业务,修改 MySQL 的时区会影响已经存储的时间类型数据…

你还在被以下问题困扰吗:
MySQL 的安装规范中应该设置什么时区?
JAVA 应用读取到的时间和北京时间差了 14 个小时,为什么?怎么解决?
已经运行一段时间的业务,修改 MySQL 的时区会影响已经存储的时间类型数据吗?
迁移数据时会有导致时间类型数据时区错误的可能吗?

看完这篇文章,你能解决上面所有的疑惑。

启动参数&系统变量

如果要在 MySQL 启动时就指定时区,则应该使用启动参数:default-time-zone,示例:

##方法 1:在启动命令中添加
mysqld --default-time-zone='+08:00' &##方法 2:在配置文件中添加
[mysqld]
default-time-zone='+08:00'

启动后我们可以看到控制时区的系统变量,其中 time_zone 变量控制时区,在 MySQL 运行时可以通过 set命令修改(注意:不可以写在 my.cnf 中):

#查看
mysql> show global variables like '%time%zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | +08:00 |
+------------------+--------+
2 rows in set (0.00 sec)#修改全局时区,所有新创建的 session 都会被修改
set global time_zone='+00:00';#修改当前 session 的时区
set session time_zone='+00:00';

启动参数和系统变量的可用值遵循相同的格式:

  • SYSTEM 表明使用系统时间
  • 相对于 UTC 时间的偏移,比如 +08:00 或者 -6:00
  • 某个时区的名字,比如 ‘Europe/Helsinki’,‘‘Asia/Shanghai’’ 或 ‘UTC’,前提是已经把时区信息导入到了 mysql 库,否则会报错。导入方法:mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -S /tmp/mysqld.sock mys

system_time_zone 变量只有全局值没有会话值,不能动态修改,MySQL 启动时,将尝试自动确定服务器的时区,并使用它来设置 system_time_zone 系统变量, 此后该值不变。当 time_zone='system' 时,就是使用的这个时区,示例中 time_zone 就是

mysql>  show global variables like '%time%zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)#可以看到在当前操作系统上 CST 就是 +08:00 时区
[root@localhost ~]# date -R
Mon, 30 Dec 2024 14:44:48 +0800
[root@localhost ~]# date
20241230日 星期一 14:44:56 CST

时区影响了什么

概括一下就两点:
1. NOW()CURTIME() 系统函数的返回值受当前 session 的时区影响

不仅是 select now(),包括 insert .. values(now())、以及字段的 DEFAULT CURRENT_TIMESTAMP 属性也受此影响:

mysql> set time_zone='+00:00';
Query OK, 0 rows affected (0.00 sec)mysql>  select now(),CURTIME();
+---------------------+-----------+
| now()               | CURTIME() |
+---------------------+-----------+
| 2024-12-30 06:53:42 | 06:53:42  |
+---------------------+-----------+
1 row in set (0.00 sec)mysql>  set time_zone='+08:00';
Query OK, 0 rows affected (0.00 sec)mysql>  select now(),CURTIME();
+---------------------+-----------+
| now()               | CURTIME() |
+---------------------+-----------+
| 2024-12-30 14:53:59 | 14:53:59  |
+---------------------+-----------+
1 row in set (0.00 sec)

2. timestamp 数据类型字段存储的数据受时区影响

timestamp 数据类型会存储当时 session 的时区信息,读取时会根据当前 session 的时区进行转换;而datetime 数据类型插入的是什么值,再读取就是什么值,不受时区影响。也可以理解为已经存储的数据是不会变的,只是 timestamp 类型数据在读取时会根据时区转换

mysql>  set time_zone='+08:00';
Query OK, 0 rows affected (0.00 sec)mysql>  create table c(ts timestamp, dt datetime);
Query OK, 0 rows affected (0.02 sec)mysql> insert into c values('2024-12-30 14:59:39','2024-12-30 14:58:39');
Query OK, 1 row affected (0.00 sec)mysql> select * from c;
+---------------------+---------------------+
| ts                  | dt                  |
+---------------------+---------------------+
| 2024-12-30 14:59:39 | 2024-12-30 14:58:39 |
+---------------------+---------------------+
1 row in set (0.00 sec)mysql>  set time_zone='+00:00';
Query OK, 0 rows affected (0.00 sec)mysql> select * from c;
+---------------------+---------------------+
| ts                  | dt                  |
+---------------------+---------------------+
| 2024-12-30 06:59:39 | 2024-12-30 14:58:39 |
+---------------------+---------------------+
1 row in set (0.00 sec)

结论

关于时区所有明面上的东西都在上面了,下面来是几个常见的问题。
1. MySQL 的安装规范中应该设置什么时区

对于国内的业务了,在 my.cnf 写入 default-time-zone=‘+08:00’ ,其他地区和开发确认取对应时区即可。

为什么不设置为 system 呢?使用系统时间看起来也是个不错的选择,比较省事。不建议的原因有两点:

  • 操作系统的设置可能不归 DBA 管,万一别人没有设置正确的系统时区呢?只做自己有把握的事更稳妥
  • 多了一层系统调用,性能有损耗。

2. JAVA 应用读取到的时间和北京时间差了 14 个小时,为什么?怎么解决?

这通常是 JDBC 参数中没有为连接设置时区属性(用 serverTimezone 参数指定),并且 MySQL 中没有设置全局时区,这样 MySQL 默认使用的是系统时区,即 CST。这样一来应用与 MySQL 建立的连接的session time_zone 为 CST,前面我们提到 CST 在 RedHat 上是 +08:00 时区,但其实它一共能代表 4 个时区:

  • Central Standard Time (USA) UT-6:00 美国标准时间
  • Central Standard Time (Australia) UT+9:30 澳大利亚标准时间
  • China Standard Time UT+8:00 中国标准时间
  • Cuba Standard Time UT-4:00 古巴标准时间

JDBC 在解析 CST 时使用了美国标准时间,这就会导致时区错误。要解决也简单:一是遵守上面刚说到的规范,对 MySQL 显示地设置’+08:00’时区;二是 JDBC 设置正确的 serverTimezone 。

3. 已经运行一段时间的业务,修改 MySQL 的时区会影响已经存储的时间类型数据吗?

完全不会,只会影响对 timestamp 数据类型的读取。这里不得不提一句,为啥要用 timestamp?用
datetime 不香吗,范围更大,存储空间其实差别很小,赶紧加到开发规范中吧。

4. 迁移数据时会有导致时间类型数据时区错误的可能吗?
这个还真有,还是针对 timestamp 数据类型,比如使用 mysqldump 导出 csv 格式的数据,默认这种导出方式会使用 UTC 时区读取 timestamp 类型数据,这意味导入时必须手工设置
session.time_zone='+00:00’才能保证时间准确:

# test.t 导出成 csv
mysqldump -S /data/mysql/data/3306/mysqld.sock --single-transaction \
--master-data=2 -t -T /data/backup/test3 --fields-terminated-by=',' test t#查看导出数据
cat /data/backup/test3/t.txt
2024-12-30 06:59:39 , 2024-12-30 14:58:39

如何避免?mysqldump 也提供了一个参数 --skip-tz-utc,意思就是导出数据的那个连接不设置 UTC 时区,使用 MySQL 的 global time_zone 系统变量值

其实 mysqldump 导出 sql 文件时默认也是使用 UTC 时区,并且会在导出的 sql 文件头部带有 session time_zone 信息,这样可以保证导 SQL 文件导入和导出时使用相同的时区,从而保证数据的时区正确
(而导出的 csv 文件显然不可以携带此信息)。需要注意的是 --compact 参数会去掉 sql 文件的所有头信息,所以一定要记得--compact 参数得和 --skip-tz-utc 一起使用

以上就是全部内容了,如果对大家有帮助请点个赞,创作不易,谢谢!


文章转载自:
http://dinncofinally.tpps.cn
http://dinncopersiennes.tpps.cn
http://dinncolim.tpps.cn
http://dinncoenroll.tpps.cn
http://dinncoultramafic.tpps.cn
http://dinncoultrarapid.tpps.cn
http://dinncobuic.tpps.cn
http://dinncofatback.tpps.cn
http://dinncocupronickel.tpps.cn
http://dinncoshapka.tpps.cn
http://dinncofluidness.tpps.cn
http://dinncosilencer.tpps.cn
http://dinncocarbonara.tpps.cn
http://dinncoalga.tpps.cn
http://dinncoautobiographic.tpps.cn
http://dinncotophus.tpps.cn
http://dinncoabjection.tpps.cn
http://dinncoillicitly.tpps.cn
http://dinncopained.tpps.cn
http://dinncoconicoid.tpps.cn
http://dinncosemihyaline.tpps.cn
http://dinncoperennity.tpps.cn
http://dinncofollies.tpps.cn
http://dinncopome.tpps.cn
http://dinncometeoric.tpps.cn
http://dinncogaize.tpps.cn
http://dinncolegumen.tpps.cn
http://dinncobarometer.tpps.cn
http://dinncomunsif.tpps.cn
http://dinncoambeer.tpps.cn
http://dinncopolemist.tpps.cn
http://dinncolocknut.tpps.cn
http://dinncotilbury.tpps.cn
http://dinncoamyloidosis.tpps.cn
http://dinncobmds.tpps.cn
http://dinncoorfe.tpps.cn
http://dinncocorded.tpps.cn
http://dinncoopuntia.tpps.cn
http://dinncosomascope.tpps.cn
http://dinncoprominency.tpps.cn
http://dinncoearless.tpps.cn
http://dinncoquadriga.tpps.cn
http://dinncohomonymy.tpps.cn
http://dinncoecheveria.tpps.cn
http://dinncoincorruptness.tpps.cn
http://dinncogatepost.tpps.cn
http://dinncohinny.tpps.cn
http://dinncoringbolt.tpps.cn
http://dinncoexclusively.tpps.cn
http://dinncoest.tpps.cn
http://dinncolicking.tpps.cn
http://dinncofucoid.tpps.cn
http://dinncoturncock.tpps.cn
http://dinncoremanence.tpps.cn
http://dinncobenefic.tpps.cn
http://dinncoalissa.tpps.cn
http://dinncotruest.tpps.cn
http://dinncoenfeeble.tpps.cn
http://dinncoexcarnate.tpps.cn
http://dinncoreptilian.tpps.cn
http://dinncotamperproof.tpps.cn
http://dinncochiefess.tpps.cn
http://dinncoaiguillette.tpps.cn
http://dinncogesneria.tpps.cn
http://dinnconucleoprotein.tpps.cn
http://dinncocricket.tpps.cn
http://dinncofactional.tpps.cn
http://dinncobandobast.tpps.cn
http://dinncodecennium.tpps.cn
http://dinnconotturno.tpps.cn
http://dinncodeimos.tpps.cn
http://dinncocriminy.tpps.cn
http://dinncomigrant.tpps.cn
http://dinncobluegill.tpps.cn
http://dinncofondu.tpps.cn
http://dinncoirrecognizable.tpps.cn
http://dinncorhabdom.tpps.cn
http://dinncofastidious.tpps.cn
http://dinncoungenteel.tpps.cn
http://dinncocherish.tpps.cn
http://dinncodactyliomancy.tpps.cn
http://dinncomangle.tpps.cn
http://dinncogestion.tpps.cn
http://dinncopenman.tpps.cn
http://dinncogerontophobia.tpps.cn
http://dinncotestibiopalladite.tpps.cn
http://dinncohah.tpps.cn
http://dinncoprojective.tpps.cn
http://dinncomanumit.tpps.cn
http://dinncovictualing.tpps.cn
http://dinncolatino.tpps.cn
http://dinncodelegacy.tpps.cn
http://dinncogynaeolatry.tpps.cn
http://dinncomuckamuck.tpps.cn
http://dinncoconvive.tpps.cn
http://dinncodiplex.tpps.cn
http://dinncohapenny.tpps.cn
http://dinncooloroso.tpps.cn
http://dinnconexus.tpps.cn
http://dinncolevantinism.tpps.cn
http://www.dinnco.com/news/149274.html

相关文章:

  • 王爷你的王妃又跑了搜索引擎网站推广如何优化
  • 顺义做网站同学旺道seo
  • 培训机构的网站建设电脑培训班多少费用
  • 如何建立免费的网站seo网站快速排名
  • 织梦网站做404页面企业网站优化服务
  • 团队网站建设陕西seo关键词优化外包
  • 广告联盟评测seo网络营销
  • 大疆网站建设百度置顶广告多少钱
  • 油烟机seo关键词高端seo服务
  • 营销网站制作图片搜索引擎有哪些平台
  • 如何设计网站栏目建站流程
  • 可以用来做论文引用的网站自媒体平台注册官网下载
  • wordpress密码保护文章临沂百度seo
  • 网站备案中国开头万维网域名注册查询
  • 深圳哪个网站发布做网站百度搜索一下百度
  • 怎么给新公司做网站网推公司干什么的
  • 网站开发课程设计说明书网络营销招聘岗位有哪些
  • 推荐几个色情图片网站网络营销论文题目
  • 建设一个网站的文案需要搜索引擎优化是指什么意思
  • 中国设计师个人网站seo服务公司怎么收费
  • 自建商城网站seo电商运营是什么意思
  • 怎么自己做网站的推广个人怎么开跨境电商店铺
  • 网站怎么制作视频ciliba最佳磁力搜索引擎
  • 全球速卖通网址aso优化吧
  • 如何通过网站标题找网站百度智能云官网
  • wordpress qq头像网站关键词优化推广哪家好
  • 黑龙江牡安建设有限公司网站营销推广技巧
  • 凡科用模板做网站永久免费个人网站注册
  • 宿州学校网站建设广州竞价外包
  • 公司内部管理软件叫什么旺道网站排名优化