①在mysql的命令模式下使用
mysql
select
CURTIME();
或
now();
看当前时间是否正确,可以看到mysql当前使用的是那一个时区的时间.
SET
time_zone
=
#
flush
privileges;
立即生效
此时mysql时区已更改正确,与系统时区都使用为
Shanghai时间了.
####
这种方法好像只能在终端上使用,退出终端后时间又会变成原来的,看来只能重启mysql了.
方法二:
如果mysql数据库可以重启,直接重启,mysql应可以立即主动读取系统时间,如果不行则更改mysql的配置文件(mysql.cnf)
在my.cnf的
[mysqld]区域中加上
default-time_zone
#此为北京时.
补充:
如果想临时解决时间显示问题,可以用php或其他语言动态修改下mysql的时区.
具体方法:
在mysql_connect()下使用mysql_query("SET
这样可以在保证你不重启的情况下改变时区.但是mysql的某些系统函数还是不能用如:now().
MYSQL_OPT_READ_TIMEOUT (argument type: unsigned int *)The timeout in seconds for each attempt to read from the server. There are retries if necessary, so the total effective timeout value is three times the option value. You can set the value so that a lost connection can be detected earlier than the TCP/IPClose_Wait_Timeout value of 10 minutes.
使用 GDB 调试代码找了实际与 mysql server 通信的代码,如下:
其中 vio_read() 函数中,使用 recv 和 poll 来读取报文和做读取超时.net_should_retry() 函数只有在发生 EINTR 时才会返回 true.从这段代码来看是符合测试结果的,并没有对读取进行三次重试.只有在读取操作被系统中断打断时才会重试,但是这个重试并没有次数限制.
同样使用 GDB 找到了通信部分的代码.这次找到了重试三次的代码,如下:
那我们怎么修改,有两种方法,一种是临时的,一种是长久的.
一:通过sql命令临时修改
Query OK, 0 rows affected (0.00 sec)
# 刷新权限使设置立即生效 mysql flush privileges;
mysql show variables like '%time_zone%';
◆------------------◆--------◆
| Variable_name | Value |
| system_time_zone | EST |
二:修改my.cnf实现永久修改
vi /etc/mysql/my.cnf
然后在mysqld下边的配置中添加一行:
然后重启mysql
service mysql restart
怎样修改mysql中的时间和日期?
建议你安装PHPMYADMIN或者MYSQL-FRONT这类软件,用它们来修改就比较简单.
另外一个办法,在留言前修改服务器的系统时间,这样保存的留言就是以前的.
具体操作步骤如下:
①.、第一步,打开sql数据库,新建一个表.格式原因,以下的date_time和time_time为日期类型,如图所示.
docker中的mysql时区是使用了世界标准时间(UTC),把时区改成东八区方法:
①.、启动容器时设置: 添加如下配置:
以上就是土嘎嘎小编为大家整理的怎么修改mysql时间相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!