Mac Mysql 配置支持timestamp默认值为0

Mac本地机器不配置好MYSQL,很多服务没法跑起来,数据库基本上是代码最底层依赖;相比较而言,web服务起不起来对开发效率的影响反而没那么大;

1 Mac 上的MYSQL 配置文件在哪?

默认没有my.cnf 文件,但是可以创建一个
执行`mysql --help`会发现有如下输出:
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf 
The following groups are read: mysql client

由于/etc是系统目录,建议选择创建 /usr/local/etc/my.cnf 或者 ~/.my.cnf 文件;

2 从哪拷贝一份默认的配置文件 my-default.cnf ?

如果是通过brew安装的mysql,一般位于如下的类似目录中: `/usr/local/Cellar/mysql/5.7.13/support-files/my-default.cnf`

3 mysql5.7 不支持timestamp 默认值为0 怎么处理?

CREATE TABLE xxxx(
  ...
  `uptime`        timestamp NOT NULL default 0,                  
  ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

上述sql在5.7版本中执行会报错,Invalid default value for 'uptime';需要手动更改mysql的配置文件。打开my.cnf文件,添加如下配置;

sql_mode=ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES

参考链接

https://my.oschina.net/u/192792/blog/652627
https://my.oschina.net/phpyer/blog/133042
http://stackoverflow.com/questions/7973927/for-homebrew-mysql-installs-wheres-my-cnf

你可能感兴趣的:(Mac Mysql 配置支持timestamp默认值为0)