mysql默认时区:

mysql> show variables like '%time_zone%';+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | PDT    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.01 sec)

my.cnf配制文件修改:可以通过修改my.cnf
在 [mysqld] 之下加default-time-zone=timezone
来修改时区。如:default-time-zone = '+8:00'

通过命令:set time_zone =timezone
比如北京时间(GMT+0800set time_zone = '+8:00';

美国pst时间(GMT-08:00set time_zone = '-8:00';

eg:

mysql> set time_zone = '+8:00';
Query OK,0 rows affected (0.17sec)mysql> selectnow();+---------------------+
| now()               |
+---------------------+
| 2016-06-23 16:32:53 |
+---------------------+
1 row in set (0.00sec)mysql> set time_zone = '-8:00';
Query OK,0 rows affected (0.00sec)mysql> selectnow();+---------------------+
| now()               |
+---------------------+
| 2016-06-23 00:33:21 |
+---------------------+
1 row in set (0.00 sec)

mysql 数据库中的时区信息默认为空:

mysql> show tables like "%time%";
+---------------------------+
| Tables_in_mysql (%time%) |
+---------------------------+
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
+---------------------------+
5 rows in set (0.00 sec)

导入时区信息到MYSQL中

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

查看导入后的信息:

mysql> SELECT * FROM time_zone_name WHERE name LIKE 'America/%' limit 10;+----------------------------------+--------------+
| Name                             | Time_zone_id |
+----------------------------------+--------------+
| America/Adak                     |           54 |
| America/Anchorage                |           55 |
| America/Anguilla                 |           56 |
| America/Antigua                  |           57 |
| America/Araguaina                |           58 |
| America/Argentina/Buenos_Aires   |           59 |
| America/Argentina/Catamarca      |           60 |
| America/Argentina/ComodRivadavia |           61 |
| America/Argentina/Cordoba        |           62 |
| America/Argentina/Jujuy          |           63 |
+----------------------------------+--------------+
10 rows in set (0.00 sec)

美国不仅有时区,还有夏令时,冬令时,提前一小时,或者减慢一小时(在时区时间基础上)美国2016年夏令时将于2016年03月13日当地时间早上02:00(北京时间14:00)开始,至2016年11月6日结束,届时美国的交易时间将较冬令时提前1个小时

mysql>  SELECT CONVERT_TZ('2016-03-13 01:30:00','-8:00','America/Los_Angeles') AS TIME\G*************************** 1. row ***************************TIME:2016-03-13 01:30:00
1 row in set (0.00 sec)

mysql> SELECT CONVERT_TZ('2016-03-13 02:30:00','-8:00','America/Los_Angeles') AS TIME\G
*************************** 1. row ***************************
TIME: 2016-03-13 03:30:00
1 row in set (0.00 sec)

内核专家:目前在MySQL数据库中,在初始化time_zone相关表元信息以后,MySQL就可以自己完成夏令时(Daylight Saving Time)和闰秒(Leap Second)的修正,不需要额外的服务器

高手:
设置timezone后,不需要再通过__tz_convert()来转换,各个线程之间并无锁冲突, now()的影响将微乎其微。性能自然获得大大提升。

公司有人实验过,高并发下now()性能有8倍之差

NOW()函数 不设时区信息需要__tz_convert()进行转换,带时区信息NOW(),就不需要__tz_convert()进行转换

now()不带时区转换过程:
now()或current_timestamp()等获取带有时区信息的时间时,数据库会在server层解析填充其field时,
通过内核层将gmt时间转化为所需的time类型。而转换是通内核层的libc动态库的接口__tz_convert()来实现。

这个实现一个致命的缺点是:串行化

select now();

Breakpoint 2, 0x00007f50e68a5ab0 in __tz_convert () from /lib64/libc.so.6(gdb) bt
#0  0x00007f50e68a5ab0 in __tz_convert () from /lib64/libc.so.6#1  0x00000000008a40ef in Time_zone_system::gmt_sec_to_TIME (this=0x180ee30 <tz_SYSTEM>, tmp=0x48e0830, t=1467609071) at /usr/src/mysql-5.6.28/sql/tztime.cc:1079#2  0x00000000006e9ce0 in Time_zone::gmt_sec_to_TIME (this=0x180ee30 <tz_SYSTEM>, tmp=0x48e0830, tv=...) at /usr/src/mysql-5.6.28/sql/tztime.h:60#3  0x00000000006e5e61 in MYSQL_TIME_cache::set_datetime (this=0x48e0830, tv=..., dec_arg=0 '\000', tz=0x180ee30 <tz_SYSTEM>) at /usr/src/mysql-5.6.28/sql/item_timefunc.cc:1747#4  0x00000000006e7bda in Item_func_now::fix_length_and_dec (this=0x48e0760) at /usr/src/mysql-5.6.28/sql/item_timefunc.cc:1866#5  0x000000000069e0e7 in Item_func::fix_fields (this=0x48e0760, thd=0x492acb0, ref=0x48e0890) at /usr/src/mysql-5.6.28/sql/item_func.cc:231#6  0x000000000075c155 in setup_fields (thd=0x492acb0, ref_pointer_array=..., fields=..., mark_used_columns=MARK_COLUMNS_READ, sum_func_list=0x48e0bb0, allow_sum_func=true) at /usr/src/mysql-5.6.28/sql/sql_base.cc:8400#7  0x00000000007f749d in JOIN::prepare (this=0x48e0968, tables_init=0x0, wild_num=0, conds_init=0x0, og_num=0, order_init=0x0, group_init=0x0, having_init=0x0, select_lex_arg=0x492d248, unit_arg=0x492cc00) at /usr/src/mysql-5.6.28/sql/sql_resolver.cc:168#8  0x00000000008080cd in mysql_prepare_select (thd=0x492acb0, tables=0x0, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, select_options=2147748608, result=0x48e0940, unit=0x492cc00, select_lex=0x492d248, free_join=0x7f5081ec5e6b) at /usr/src/mysql-5.6.28/sql/sql_select.cc:1055#9  0x0000000000808222 in mysql_select (thd=0x492acb0, tables=0x0, wild_num=0, fields=..., conds=0x0, order=0x492d410, group=0x492d348, having=0x0, select_options=2147748608, result=0x48e0940, unit=0x492cc00, select_lex=0x492d248) at /usr/src/mysql-5.6.28/sql/sql_select.cc:1178#10 0x000000000080854d in handle_select (thd=0x492acb0, result=0x48e0940, setup_tables_done_option=0) at /usr/src/mysql-5.6.28/sql/sql_select.cc:110#11 0x00000000007cdc4e in execute_sqlcom_select (thd=0x492acb0, all_tables=0x0) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:5134#12 0x00000000007cf185 in mysql_execute_command (thd=0x492acb0) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:2656#13 0x00000000007d67c4 in mysql_parse (thd=0x492acb0, rawbuf=0x48e06d0 "select now()", length=12, parser_state=0x7f5081ec7910) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:6386#14 0x00000000007d83f4 in dispatch_command (command=COM_QUERY, thd=0x492acb0, packet=0x4910c51 "select now()", packet_length=12) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:1340#15 0x00000000007d9c80 in do_command (thd=0x492acb0) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:1037#16 0x000000000078e3fb in do_handle_one_connection (thd_arg=0x492acb0) at /usr/src/mysql-5.6.28/sql/sql_connect.cc:982#17 0x000000000078e4c1 in handle_one_connection (arg=0x492acb0) at /usr/src/mysql-5.6.28/sql/sql_connect.cc:898#18 0x0000000000b11172 in pfs_spawn_thread (arg=0x47900b0) at /usr/src/mysql-5.6.28/storage/perfschema/pfs.cc:1860#19 0x00007f50e744083d in start_thread () from /lib64/libpthread.so.0#20 0x00007f50e68edfdd in clone () from /lib64/libc.so.6#21 0x0000000000000000 in ?? ()

select sysdate();

(gdb) bt
#0  0x00007f50e68a5ab0 in __tz_convert () from /lib64/libc.so.6#1  0x00000000008a40ef in Time_zone_system::gmt_sec_to_TIME (this=0x180ee30 <tz_SYSTEM>, tmp=0x7f5081ec5770, t=1467609724) at /usr/src/mysql-5.6.28/sql/tztime.cc:1079#2  0x00000000006e54de in Item_func_sysdate_local::get_date (this=0x48e0770, now_time=0x7f5081ec5770, fuzzy_date=1) at /usr/src/mysql-5.6.28/sql/item_timefunc.cc:1910#3  0x0000000000634940 in Item::send (this=0x48e0770, protocol=0x492b1d0, buffer=0x7f5081ec5b70) at /usr/src/mysql-5.6.28/sql/item.cc:6925#4  0x000000000070f558 in Protocol::send_result_set_row (this=0x492b1d0, row_items=0x492d368) at /usr/src/mysql-5.6.28/sql/protocol.cc:847#5  0x00000000007833a9 in select_send::send_data (this=0x48e0900, items=...) at /usr/src/mysql-5.6.28/sql/sql_class.cc:2531#6  0x00000000007a3ffa in JOIN::exec (this=0x48e0928) at /usr/src/mysql-5.6.28/sql/sql_executor.cc:149#7  0x0000000000807992 in mysql_execute_select (thd=0x492acb0, select_lex=0x492d248, free_join=true) at /usr/src/mysql-5.6.28/sql/sql_select.cc:1101#8  0x0000000000808351 in mysql_select (thd=0x492acb0, tables=0x0, wild_num=0, fields=..., conds=0x0, order=0x492d410, group=0x492d348, having=0x0, select_options=2147748608, result=0x48e0900, unit=0x492cc00, select_lex=0x492d248) at /usr/src/mysql-5.6.28/sql/sql_select.cc:1222#9  0x000000000080854d in handle_select (thd=0x492acb0, result=0x48e0900, setup_tables_done_option=0) at /usr/src/mysql-5.6.28/sql/sql_select.cc:110#10 0x00000000007cdc4e in execute_sqlcom_select (thd=0x492acb0, all_tables=0x0) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:5134#11 0x00000000007cf185 in mysql_execute_command (thd=0x492acb0) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:2656#12 0x00000000007d67c4 in mysql_parse (thd=0x492acb0, rawbuf=0x48e06d0 "select sysdate()", length=16, parser_state=0x7f5081ec7910) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:6386#13 0x00000000007d83f4 in dispatch_command (command=COM_QUERY, thd=0x492acb0, packet=0x4910c51 "", packet_length=16) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:1340#14 0x00000000007d9c80 in do_command (thd=0x492acb0) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:1037#15 0x000000000078e3fb in do_handle_one_connection (thd_arg=0x492acb0) at /usr/src/mysql-5.6.28/sql/sql_connect.cc:982#16 0x000000000078e4c1 in handle_one_connection (arg=0x492acb0) at /usr/src/mysql-5.6.28/sql/sql_connect.cc:898#17 0x0000000000b11172 in pfs_spawn_thread (arg=0x47900b0) at /usr/src/mysql-5.6.28/storage/perfschema/pfs.cc:1860#18 0x00007f50e744083d in start_thread () from /lib64/libpthread.so.0#19 0x00007f50e68edfdd in clone () from /lib64/libc.so.6#20 0x0000000000000000 in ?? ()

select now() -2
(gdb) bt
#0  0x00007ff8c1c1c1c0 in localtime_r () from /lib64/libc.so.6#1  0x00000000008a40ef in Time_zone_system::gmt_sec_to_TIME (this=0x180ee30 <tz_SYSTEM>, tmp=0x49afae0, t=1467636107) at /usr/src/mysql-5.6.28/sql/tztime.cc:1079#2  0x00000000006e9ce0 in Time_zone::gmt_sec_to_TIME (this=0x180ee30 <tz_SYSTEM>, tmp=0x49afae0, tv=...) at /usr/src/mysql-5.6.28/sql/tztime.h:60#3  0x00000000006e5e61 in MYSQL_TIME_cache::set_datetime (this=0x49afae0, tv=..., dec_arg=0 '\000', tz=0x180ee30 <tz_SYSTEM>) at /usr/src/mysql-5.6.28/sql/item_timefunc.cc:1747#4  0x00000000006e7bda in Item_func_now::fix_length_and_dec (this=0x49afa10) at /usr/src/mysql-5.6.28/sql/item_timefunc.cc:1866#5  0x000000000069e0e7 in Item_func::fix_fields (this=0x49afa10, thd=0x48c3db0, ref=0x49afb40) at /usr/src/mysql-5.6.28/sql/item_func.cc:231#6  0x000000000075c155 in setup_fields (thd=0x48c3db0, ref_pointer_array=..., fields=..., mark_used_columns=MARK_COLUMNS_READ, sum_func_list=0x49afe60, allow_sum_func=true) at /usr/src/mysql-5.6.28/sql/sql_base.cc:8400#7  0x00000000007f749d in JOIN::prepare (this=0x49afc18, tables_init=0x0, wild_num=0, conds_init=0x0, og_num=0, order_init=0x0, group_init=0x0, having_init=0x0, select_lex_arg=0x48c6348, unit_arg=0x48c5d00) at /usr/src/mysql-5.6.28/sql/sql_resolver.cc:168#8  0x00000000008080cd in mysql_prepare_select (thd=0x48c3db0, tables=0x0, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, select_options=2147748608, result=0x49afbf0, unit=0x48c5d00, select_lex=0x48c6348, free_join=0x7ff85d1fce6b) at /usr/src/mysql-5.6.28/sql/sql_select.cc:1055#9  0x0000000000808222 in mysql_select (thd=0x48c3db0, tables=0x0, wild_num=0, fields=..., conds=0x0, order=0x48c6510, group=0x48c6448, having=0x0, select_options=2147748608, result=0x49afbf0, unit=0x48c5d00, select_lex=0x48c6348) at /usr/src/mysql-5.6.28/sql/sql_select.cc:1178#10 0x000000000080854d in handle_select (thd=0x48c3db0, result=0x49afbf0, setup_tables_done_option=0) at /usr/src/mysql-5.6.28/sql/sql_select.cc:110#11 0x00000000007cdc4e in execute_sqlcom_select (thd=0x48c3db0, all_tables=0x0) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:5134#12 0x00000000007cf185 in mysql_execute_command (thd=0x48c3db0) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:2656#13 0x00000000007d67c4 in mysql_parse (thd=0x48c3db0, rawbuf=0x49af980 "select now()", length=12, parser_state=0x7ff85d1fe910) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:6386#14 0x00000000007d83f4 in dispatch_command (command=COM_QUERY, thd=0x48c3db0, packet=0x49a5751 "select now()", packet_length=12) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:1340#15 0x00000000007d9c80 in do_command (thd=0x48c3db0) at /usr/src/mysql-5.6.28/sql/sql_parse.cc:1037#16 0x000000000078e3fb in do_handle_one_connection (thd_arg=0x48c3db0) at /usr/src/mysql-5.6.28/sql/sql_connect.cc:982#17 0x000000000078e4c1 in handle_one_connection (arg=0x48c3db0) at /usr/src/mysql-5.6.28/sql/sql_connect.cc:898#18 0x0000000000b11172 in pfs_spawn_thread (arg=0x4794e60) at /usr/src/mysql-5.6.28/storage/perfschema/pfs.cc:1860#19 0x00007ff8c27b883d in start_thread () from /lib64/libpthread.so.0#20 0x00007ff8c1c65fdd in clone () from /lib64/libc.so.6#21 0x0000000000000000 in ??()
(gdb) disas
Dump of assembler codeforfunction localtime_r:=> 0x00007ff8c1c1c1c0 <+0>:     mov    %rsi,%rdx0x00007ff8c1c1c1c3 <+3>:     mov    $0x1,%esi0x00007ff8c1c1c1c8 <+8>:     jmpq   0x7ff8c1c1dab0 <__tz_convert>End of assembler dump.
(gdb) next
Single stepping until exitfromfunction localtime_r,
which has no line number information.0x00007ff8c1c1dab0 in __tz_convert () from /lib64/libc.so.6(gdb) diaas
Undefined command:"diaas".  Try "help".
(gdb) disas
Dump of assembler codeforfunction __tz_convert:=> 0x00007ff8c1c1dab0 <+0>:     push   %r120x00007ff8c1c1dab2 <+2>:     mov    %esi,%r12d0x00007ff8c1c1dab5 <+5>:     push   %rbp0x00007ff8c1c1dab6 <+6>:     mov    %rdi,%rbp0x00007ff8c1c1dab9 <+9>:     push   %rbx0x00007ff8c1c1daba <+10>:    mov    %rdx,%rbx0x00007ff8c1c1dabd <+13>:    sub    $0x10,%rsp0x00007ff8c1c1dac1 <+17>:    test   %rdi,%rdi0x00007ff8c1c1dac4 <+20>:    je     0x7ff8c1c1dc6e <__tz_convert+446>0x00007ff8c1c1daca <+26>:    mov    $0x1,%esi0x00007ff8c1c1dacf <+31>:    xor    %eax,%eax0x00007ff8c1c1dad1 <+33>:    cmpl   $0x0,0x2cb458(%rip)        # 0x7ff8c1ee8f30 <__libc_multiple_threads>0x00007ff8c1c1dad8 <+40>:    je     0x7ff8c1c1daea <__tz_convert+58>0x00007ff8c1c1dada <+42>:    lock cmpxchg %esi,0x2c8ab2(%rip)        # 0x7ff8c1ee6594 <tzset_lock>0x00007ff8c1c1dae2 <+50>:    jne    0x7ff8c1c1dd9a <_L_lock_1685>0x00007ff8c1c1dae8 <+56>:    jmp    0x7ff8c1c1daf7 <__tz_convert+71>0x00007ff8c1c1daea <+58>:    cmpxchg %esi,0x2c8aa3(%rip)        # 0x7ff8c1ee6594 <tzset_lock>0x00007ff8c1c1daf1 <+65>:    jne    0x7ff8c1c1dd9a <_L_lock_1685>0x00007ff8c1c1daf7 <+71>:    lea    0x2cb1c2(%rip),%rax        # 0x7ff8c1ee8cc0 <_tmbuf>0x00007ff8c1c1dafe <+78>:    xor    %edi,%edi0x00007ff8c1c1db00 <+80>:    cmp    %rax,%rdx0x00007ff8c1c1db03 <+83>:    sete   %dil0x00007ff8c1c1db07 <+87>:    xor    %esi,%esi0x00007ff8c1c1db09 <+89>:    callq  0x7ff8c1c1d160 <tzset_internal>0x00007ff8c1c1db0e <+94>:    mov    0x2cb1ec(%rip),%eax        # 0x7ff8c1ee8d00 <__use_tzfile>0x00007ff8c1c1db14 <+100>:   test   %eax,%eax0x00007ff8c1c1db16 <+102>:   je     0x7ff8c1c1db94 <__tz_convert+228>0x00007ff8c1c1db18 <+104>:   mov    0x0(%rbp),%rdi0x00007ff8c1c1db1c <+108>:   lea    0xc(%rsp),%rcx0x00007ff8c1c1db21 <+113>:   mov    %rsp,%rdx0x00007ff8c1c1db24 <+116>:   mov    %rbx,%r80x00007ff8c1c1db27 <+119>:   mov    %r12d,%esi0x00007ff8c1c1db2a <+122>:   callq  0x7ff8c1c1de60 <__tzfile_compute>0x00007ff8c1c1db2f <+127>:   test   %rbx,%rbx0x00007ff8c1c1db32 <+130>:   je     0x7ff8c1c1db64 <__tz_convert+180>0x00007ff8c1c1db34 <+132>:   test   %r12d,%r12d0x00007ff8c1c1db37 <+135>:   je     0x7ff8c1c1dbc8 <__tz_convert+280>0x00007ff8c1c1db3d <+141>:   mov    0x2cb1bd(%rip),%eax        # 0x7ff8c1ee8d00 <__use_tzfile>0x00007ff8c1c1db43 <+147>:   test   %eax,%eax0x00007ff8c1c1db45 <+149>:   je     0x7ff8c1c1dc13 <__tz_convert+355>0x00007ff8c1c1db4b <+155>:   mov    0x28(%rbx),%rsi0x00007ff8c1c1db4f <+159>:   sub    (%rsp),%rsi0x00007ff8c1c1db53 <+163>:   mov    %rbx,%rdx0x00007ff8c1c1db56 <+166>:   mov    %rbp,%rdi0x00007ff8c1c1db59 <+169>:   callq  0x7ff8c1c1ba90 <__offtime>0x00007ff8c1c1db5e <+174>:   test   %eax,%eax0x00007ff8c1c1db60 <+176>:   jne    0x7ff8c1c1dbc0 <__tz_convert+272>0x00007ff8c1c1db62 <+178>:   xor    %ebx,%ebx0x00007ff8c1c1db64 <+180>:   cmpl   $0x0,0x2cb3c5(%rip)        # 0x7ff8c1ee8f30 <__libc_multiple_threads>0x00007ff8c1c1db6b <+187>:   je     0x7ff8c1c1db7c <__tz_convert+204>0x00007ff8c1c1db6d <+189>:   lock decl 0x2c8a20(%rip)        # 0x7ff8c1ee6594 <tzset_lock>0x00007ff8c1c1db74 <+196>:   jne    0x7ff8c1c1ddb9 <_L_unlock_1746>0x00007ff8c1c1db7a <+202>:   jmp    0x7ff8c1c1db88 <__tz_convert+216>0x00007ff8c1c1db7c <+204>:   decl   0x2c8a12(%rip)        # 0x7ff8c1ee6594 <tzset_lock>0x00007ff8c1c1db82 <+210>:   jne    0x7ff8c1c1ddb9 <_L_unlock_1746>0x00007ff8c1c1db88 <+216>:   add    $0x10,%rsp0x00007ff8c1c1db8c <+220>:   mov    %rbx,%rax0x00007ff8c1c1db8f <+223>:   pop    %rbx0x00007ff8c1c1db90 <+224>:   pop    %rbp0x00007ff8c1c1db91 <+225>:   pop    %r120x00007ff8c1c1db93 <+227>:   retq0x00007ff8c1c1db94 <+228>:   xor    %esi,%esi0x00007ff8c1c1db96 <+230>:   mov    %rbx,%rdx0x00007ff8c1c1db99 <+233>:   mov    %rbp,%rdi0x00007ff8c1c1db9c <+236>:   callq  0x7ff8c1c1ba90 <__offtime>0x00007ff8c1c1dba1 <+241>:   test   %eax,%eax0x00007ff8c1c1dba3 <+243>:   jne    0x7ff8c1c1dbe7 <__tz_convert+311>0x00007ff8c1c1dba5 <+245>:   xor    %ebx,%ebx0x00007ff8c1c1dba7 <+247>:   movq   $0x0,(%rsp)0x00007ff8c1c1dbaf <+255>:   movl   $0x0,0xc(%rsp)0x00007ff8c1c1dbb7 <+263>:   jmpq   0x7ff8c1c1db2f <__tz_convert+127>0x00007ff8c1c1dbbc <+268>:   nopl   0x0(%rax)0x00007ff8c1c1dbc0 <+272>:   mov    0xc(%rsp),%eax0x00007ff8c1c1dbc4 <+276>:   add    %eax,(%rbx)0x00007ff8c1c1dbc6 <+278>:   jmp    0x7ff8c1c1db64 <__tz_convert+180>0x00007ff8c1c1dbc8 <+280>:   lea    0x951ae(%rip),%rax        # 0x7ff8c1cb2d7d0x00007ff8c1c1dbcf <+287>:   movl   $0x0,0x20(%rbx)0x00007ff8c1c1dbd6 <+294>:   movq   $0x0,0x28(%rbx)0x00007ff8c1c1dbde <+302>:   mov    %rax,0x30(%rbx)0x00007ff8c1c1dbe2 <+306>:   jmpq   0x7ff8c1c1db4b <__tz_convert+155>0x00007ff8c1c1dbe7 <+311>:   mov    0x14(%rbx),%esi0x00007ff8c1c1dbea <+314>:   lea    0x2c89af(%rip),%rdi        # 0x7ff8c1ee65a0 <tz_rules>0x00007ff8c1c1dbf1 <+321>:   add    $0x76c,%esi0x00007ff8c1c1dbf7 <+327>:   callq  0x7ff8c1c1ce00 <compute_change>0x00007ff8c1c1dbfc <+332>:   mov    0x14(%rbx),%esi0x00007ff8c1c1dbff <+335>:   lea    0x2c89ca(%rip),%rdi        # 0x7ff8c1ee65d0 <tz_rules+48>0x00007ff8c1c1dc06 <+342>:   add    $0x76c,%esi0x00007ff8c1c1dc0c <+348>:   callq  0x7ff8c1c1ce00 <compute_change>0x00007ff8c1c1dc11 <+353>:   jmp    0x7ff8c1c1dba7 <__tz_convert+247>0x00007ff8c1c1dc13 <+355>:   mov    0x2c89a6(%rip),%rcx        # 0x7ff8c1ee65c0 <tz_rules+32>0x00007ff8c1c1dc1a <+362>:   mov    0x2c89cf(%rip),%rdi        # 0x7ff8c1ee65f0 <tz_rules+80>0x00007ff8c1c1dc21 <+369>:   cmp    %rdi,%rcx0x00007ff8c1c1dc24 <+372>:   jg     0x7ff8c1c1dc83 <__tz_convert+467>0x00007ff8c1c1dc26 <+374>:   mov    0x0(%rbp),%rsi0x00007ff8c1c1dc2a <+378>:   xor    %eax,%eax0x00007ff8c1c1dc2c <+380>:   cmp    %rsi,%rcx0x00007ff8c1c1dc2f <+383>:   jg     0x7ff8c1c1dc39 <__tz_convert+393>0x00007ff8c1c1dc31 <+385>:   xor    %eax,%eax0x00007ff8c1c1dc33 <+387>:   cmp    %rsi,%rdi0x00007ff8c1c1dc36 <+390>:   setg   %al0x00007ff8c1c1dc39 <+393>:   movslq %eax,%rdx0x00007ff8c1c1dc3c <+396>:   mov    %eax,0x20(%rbx)0x00007ff8c1c1dc3f <+399>:   mov    0x2c617a(%rip),%rax        # 0x7ff8c1ee3dc00x00007ff8c1c1dc46 <+406>:   mov    (%rax,%rdx,8),%rax0x00007ff8c1c1dc4a <+410>:   mov    %rax,0x30(%rbx)0x00007ff8c1c1dc4e <+414>:   lea    (%rdx,%rdx,1),%rax0x00007ff8c1c1dc52 <+418>:   add    %rdx,%rax0x00007ff8c1c1dc55 <+421>:   lea    0x2c894c(%rip),%rdx        # 0x7ff8c1ee65a8 <tz_rules+8>0x00007ff8c1c1dc5c <+428>:   shl    $0x4,%rax0x00007ff8c1c1dc60 <+432>:   mov    0x10(%rax,%rdx,1),%rax0x00007ff8c1c1dc65 <+437>:   mov    %rax,0x28(%rbx)0x00007ff8c1c1dc69 <+441>:   jmpq   0x7ff8c1c1db4b <__tz_convert+155>0x00007ff8c1c1dc6e <+446>:   mov    0x2c6333(%rip),%rax        # 0x7ff8c1ee3fa80x00007ff8c1c1dc75 <+453>:   xor    %ebx,%ebx0x00007ff8c1c1dc77 <+455>:   movl   $0x16,%fs:(%rax)0x00007ff8c1c1dc7e <+462>:   jmpq   0x7ff8c1c1db88 <__tz_convert+216>0x00007ff8c1c1dc83 <+467>:   mov    0x0(%rbp),%rdx0x00007ff8c1c1dc87 <+471>:   mov    $0x1,%eax0x00007ff8c1c1dc8c <+476>:   cmp    %rdx,%rdi0x00007ff8c1c1dc8f <+479>:   jg     0x7ff8c1c1dc39 <__tz_convert+393>0x00007ff8c1c1dc91 <+481>:   xor    %eax,%eax0x00007ff8c1c1dc93 <+483>:   cmp    %rdx,%rcx0x00007ff8c1c1dc96 <+486>:   setle  %al0x00007ff8c1c1dc99 <+489>:   jmp    0x7ff8c1c1dc39 <__tz_convert+393>End of assembler dump.

[root@localhost ~]# stap -v -e 'probe process("/lib64/libc-2.5.so").function("__tz_convert").call{ if( tid()==15267) printf("%s:%s %d \n",execname(),probefunc(),tid());print_ubacktrace()}' -d /usr/local/mysql56/bin/mysqld |c++filt
Pass1: parsed user script and 109 library script(s) using 110724virt/34364res/2112shr/32900data kb, in 260usr/100sys/385realms.
Pass2: analyzed script: 1 probe(s), 9 function(s), 4 embed(s), 0 global(s) using 113460virt/38036res/3108shr/35636data kb, in 60usr/1050sys/2125realms.
Pass3: using cached /root/.systemtap/cache/a1/stap_a10e8693bbc550250f91b5363abb795b_3427.c
Pass4: using cached /root/.systemtap/cache/a1/stap_a10e8693bbc550250f91b5363abb795b_3427.ko
Pass5: starting run.
WARNING: Missing unwind datafor module, rerun with 'stap -d /usr/local/mysql56/bin/mysql'mysqld:__tz_convert15267 0x7fbcecdb1ab0 : __tz_convert+0x0/0x1f0 [/lib64/libc-2.5.so]0x8a40ef : Time_zone_system::gmt_sec_to_TIME(st_mysql_time*, long) const+0x29/0x4c [/usr/local/mysql56/bin/mysqld]0x6e9ce0 : Time_zone::gmt_sec_to_TIME(st_mysql_time*, timeval)+0x3a/0x4c [/usr/local/mysql56/bin/mysqld]0x6e5e61 : MYSQL_TIME_cache::set_datetime(timeval, unsigned char, Time_zone*)+0x33/0x5e [/usr/local/mysql56/bin/mysqld]0x6e7bda : Item_func_now::fix_length_and_dec()+0x98/0xba [/usr/local/mysql56/bin/mysqld]0x69e0e7 : Item_func::fix_fields(THD*, Item**)+0x4d1/0x548 [/usr/local/mysql56/bin/mysqld]0x75c155 : setup_fields(THD*, Bounds_checked_array<Item*>, List<Item>&, enum_mark_columns, List<Item>*, bool)+0x313/0x688 [/usr/local/mysql56/bin/mysqld]0x7f749d : JOIN::prepare(TABLE_LIST*, unsigned int, Item*, unsigned int, st_order*, st_order*, Item*, st_select_lex*, st_select_lex_unit*)+0x6c3/0x1768 [/usr/local/mysql56/bin/mysqld]0x8080cd : mysql_prepare_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*, bool*)+0x2f9/0x34a [/usr/local/mysql56/bin/mysqld]0x808222 : mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, SQL_I_List<st_order>*, SQL_I_List<st_order>*, Item*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*)+0x104/0x23e [/usr/local/mysql56/bin/mysqld]0x80854d : handle_select(THD*, select_result*, unsigned long)+0x1f1/0x29e [/usr/local/mysql56/bin/mysqld]0x7cdc4e : execute_sqlcom_select(THD*, TABLE_LIST*)+0x336/0x3ba [/usr/local/mysql56/bin/mysqld]0x7cf185 : mysql_execute_command(THD*)+0xc91/0x7ec8 [/usr/local/mysql56/bin/mysqld]0x7d67c4 : mysql_parse(THD*, char*, unsigned int, Parser_state*)+0x408/0x690 [/usr/local/mysql56/bin/mysqld]0x7d83f4 : dispatch_command(enum_server_command, THD*, char*, unsigned int)+0xd0a/0x227e [/usr/local/mysql56/bin/mysqld]0x7d9c80 : do_command(THD*)+0x318/0x394 [/usr/local/mysql56/bin/mysqld]0x78e3fb : do_handle_one_connection(THD*)+0x1ad/0x246 [/usr/local/mysql56/bin/mysqld]0x78e4c1 : handle_one_connection+0x2d/0x34 [/usr/local/mysql56/bin/mysqld]0xb11172 : pfs_spawn_thread+0x18c/0x194 [/usr/local/mysql56/bin/mysqld]0x7fbced94c83d [/lib64/libpthread-2.5.so+0x683d/0x218000]0x7fc104aaeab0 : __tz_convert+0x0/0x1f0 [/lib64/libc-2.5.so]0x410901 [/usr/local/mysql56/bin/mysql+0x10901/0x15e000]
^CPass 5: run completed in 10usr/120sys/10618real ms.

mysql 时区 , 夏令时,冬令时相关推荐

  1. Mysql 时区修改问题(冬令时夏令时)

    1.起因: 前两天发现有一台mysql的测试机环境出现了和系统时区不一致的情况,情况如下: mysql> show variables like '%time_zone%'; +-------- ...

  2. 时间那点儿事儿 -- 时间戳,时区,冬令时,夏令时

    关于时间的那点儿事儿 -- 时间戳,时区,冬令时,夏令时 UTC.GMT.PST,冬令时.夏令时 看起来是不是很懵,看完本文后相信关于时间你会有一个清醒的认知. 时间按照不同的角度可以划分为: 时间戳 ...

  3. Java与MySQL时区

    一.CST 时区混乱 CST是一个混乱的时区,它有四种含义: 美国标准时间 Central Standard Time (USA):UTC-06:00(或UTC-05:00).夏令时:3月11日至11 ...

  4. mysql内部时区_一文解决MySQL时区相关问题

    前言: 在使用MySQL的过程中,你可能会遇到时区相关问题,比如说时间显示错误.时区不是东八区.程序取得的时间和数据库存储的时间不一致等等问题.其实,这些问题都与数据库时区设置有关,本篇文章将从数据库 ...

  5. 一文解决MySQL时区相关问题

    https://zhuanlan.zhihu.com/p/154109590 前言: 在使用 MySQL 的过程中,你可能会遇到时区相关问题,比如说时间显示错误.时区不是东八区.程序取得的时间和数据库 ...

  6. esxi时区设置 +8_Go语言MySQL时区问题

    原文见:Go语言MySQL时区问题 - Jiajun的编程随想 最近由于我要统一技术栈,因此把原本使用SQLite做存储的数据全部迁移到MySQL.博客也是.不过当我检查数据库时,发现时间和 我产生数 ...

  7. mysql 时区设定_如何设置MySQL 时区

    MySQL 时区默认是服务器的时区.在使用中经常会遇见. 可以通过以下命令查看 查看时区 SQL代码. mysql> show variables like '%time_zone%'; . + ...

  8. The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized 偶然遇到的mysql时区问题

    因为换了个电脑用,运行时报了个很少见的异常.如下: Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver ...

  9. mysql时区代码_mysql时区设置为东八区

    场景:后台返回给页面的时间统一差8小时. 分析:差八小时,应该是时区问题.具体的是哪一层出的问题呢,mybatis?mysql?系统时间? 解析: 1.查询mysql时区(正常) 输入show var ...

最新文章

  1. 两大AI技术集于一身,有道词典笔3从0到1的飞跃
  2. 【bzoj3442】学习小组 费用流
  3. Linux-Android系统启动之INIT进程和system v init
  4. node --- 后端使用body-parse解析Post请求,前端使用axios发送Post请求
  5. Ubuntu Linux创建Hadoop用户
  6. ubuntu12.10安装android编译环境
  7. linux 端口映射 命令,linux查看端口映射命令
  8. 奶茶店、粥店、火锅店卫生问题频出,如何通过视频监管系统保证群众饮食安全?
  9. 权限系统设计学习总结(1)——多租户的RBAC权限管理
  10. 【JAVA基础】Java基础之-代理详解
  11. Scala 安装教程
  12. 关于网站中Logo部分的写法
  13. Unity创建注册表并写入
  14. 10个免费的游戏开发引擎
  15. 关于opengl中glColor3f的应用
  16. H5编辑器H5-Dooring2.30更新指南
  17. 2020BAJT等九大一线大厂的薪资和职级对比
  18. python 峰_python-如何在具有多个峰的数据集中查找FWH...
  19. Stochastically Stable Negativity for Analytically Linear Subalgebras——ShaneZhang
  20. 2022 CCF中国软件大会(CCF Chinasoft)“软件工程研究与实践论坛”论坛成功召开...

热门文章

  1. 公网IP是什么(Public IP)
  2. 四叶玫瑰花数java代码_Java 循环语句 四叶玫瑰数,奇数偶数求和
  3. Python实现银行金额大写汉字转换【简单易懂,代码可以直接运行】
  4. bootstrap结合chosen组件实现select可搜索功能
  5. 十三 Python之面向对象基础
  6. 自学java心路历程(学了半年。。。直到更久。。。。。)
  7. Error launching Studio
  8. Java数组与八大排序
  9. Axure支付宝首页广告轮播
  10. Unity2019对于弃用WWW加载方式后的新替代的API的UnityWebRequest的使用