标签 mysql 下的文章

jodatime spring mvc (spring boot) 配置 解决时区问题

jodatime依靠其方便的api和与Data无缝转换,成为java开发负责时间逻辑的不二之选。
当jodatime作为Entity的属性自动转换时,一般用到jadira.usertype

在实体类中使用jodatime需要引入jadira.usertype
自动转换有两种配置,一种是在属性上加注解:

// Will be mapped as DATETIME (on MySQL)

@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime createTime;

// Will be mapped as DATE (on MySQL), i.e. only date without timestamp
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDate")
private LocalDate birthdayDate;

一种是做全局配置
spring boot的app.properties配置如下:

spring.jpa.properties.jadira.usertype.autoRegisterUserTypes = true

这样在实体类中就可以直接使用jodatime的DateTime类型,在存取数据库的时候会自动完成类型转换

// Will be mapped as DATETIME (on MySQL)
private DateTime createTime;

// Will be mapped as DATE (on MySQL), i.e. only date without timestamp
private LocalDate birthdayDate;

不过有一个问题,当数据库保存实体时,时间少了8个小时,2016-06-20 00:00:00存到数据库中变成了2016-06-19 16:00:00,看来是丢了时区信息。

MySQL数据库启动错误 Manager of pid-file quit without updating file

好久没看博客,去google analytics看怎么流量锐减,从3月18号之后就没有流量了,发现是网站们都down了,数据库连不上。
后台数据库没有起来,试着起一下,报了错误:Manager of pid-file quit without updating file
查找数据库启动日志,我用的lnmp所以在/usr/local/mysql/var里,发现

150331 00:13:26 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var/usr/local/mysql/libexec/mysqld: File './mysql-bin.index' not found (Errcode: 13)
150331  0:13:26 [ERROR] Aborting

150331  0:13:26 [Note] /usr/local/mysql/libexec/mysqld: Shutdown complete

150331 00:13:26 mysqld_safe mysqld from pid file /usr/local/mysql/var/svr.pid ended

重要的一句:File './mysql-bin.index' not found (Errcode: 13)
查看mysql-bin.index 文件是存在的,所以应该是权限问题。
将var下的所有文件chown到mysql用户下,问题解决

chown -R mysql:mysql var/