Windows下启动MySQL5.6服务出现"--secure-file-priv"的报错, 以及后续"Explicit defaults for timestamp"报错解决

问题阐述

CMD下执行命令行:

// 前台启动MySQL服务
D:\Program Files (x86)\mysql-5.6.37_64\bin\mysqld.exe --defaults-file="D:/Program Files (x86)/mysql-5.6.37_64/my.ini"

出现报错:

// 类似以下一个属性的报错.因为以前有过类似错误,原因就是因为配置文件问题.
...--secure-file-priv...

问题解决:

–secure-file-priv 是什么?

secure-file-priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()传到哪个指定目录的.

当secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出;
当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下;
当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制;

–secure-file-priv 问题解决.

编辑配置文件my.ini.
新增属性:

// 虽然上文说可以留空,但是实际上配置不能留空,不然会有提示说该属性不能为空值.
// 并且,为了以后的导出导入, 新增 /tmp的子路径.
secure_file_priv ="D:\Program Files (x86)\mysql-5.6.37_64\tmp"

重新编辑my.ini 之后再次执行服务启动命令.问题解决了,但是又出现新的问题:

// 根据前台报错提示.得知某个属性已经启用, 需要以下属性.
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option (see
documentation for more details).

编辑配置文件 my.ini,增加一项设置:

explicit_defaults_for_timestamp = 1

重新启动服务, 加载配置文件,每天其它报错. 问题得到解决.

什么是explicit_defaults_for_timestamp参数

explicit_defaults_for_timestamp参数主要用来控制TIMESTAMP数据类型跟其他数据类型不一致的特性,但是TIMESTAMP的这个特性在将来会被废弃,所以explicit_defaults_for_timestamp参数也会在将来被废弃.

更多参考:

http://blog.csdn.net/donghaixiaolongwang/article/details/73799809

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章