第一个:
[Warning] Insecure configuration for –secure-file-priv: Current value
does not restrict location of generated files. Consider setting it to a
valid, non-empty path.
secure-file-priv这个参数主要是限制LOAD_FILE和LOAD DATA和SELECT … ,INTO
OUTFILE报表到指定的目录。
一般来说很少用,默认值有empty、dirname、NULL,正确的意思就是:留空、指定路径、NULL值。千万不要以为是empty、指定路径、NULL。。。empty会报错的哦,empty其实就是留空,会转成默认值,也就是platform-specific,我也不知道是什么东东。反正会如上提示。设置路径会要求你该路径其他系统用户不能读,而且不能获取到你的MySQL数据库目录。NULL就是空,也是禁用的意思。
所以我在my.cnf中把secure-file-priv设置成NULL:
secure-file-priv = NULL如此操作可以看到,现在提示:
[Note] –secure-file-priv is set to NULL. Operations related to
importing and exporting data are disabled
直译就是:[提示]–secure-file-priv被设置成NULL,有关数据导入导出操作被禁止。
这个不会影响mysqldump使用,放心好了。
第二项警告是:
[Warning] Failed to set up SSL because of the following SSL library
error: SSL context is not usable without certificate and private key
在5.7中,通过ssl方式连接mysql被作为默认和推荐。如果你并不需要(比如web端和db端同一台服务器,db服务器处于web端内网等),就可以不用使用ssl方式。
干掉警告很简单,只要在my.cnf声明跳过ssl就行了。
skip-ssl如此便OK了。
还有个警告。。。是:
[Warning] ‘user’ entry ‘root@localhost’ ignored in –skip-name-resolve
mode. [Warning] ‘user’ entry ‘mysql.sys@localhost’ ignored in
–skip-name-resolve mode. [Warning] ‘db’ entry ‘sys mysql.sys@localhost’
ignored in –skip-name-resolve mode. [Warning] ‘proxies_priv’ entry ‘@
root@localhost’ ignored in –skip-name-resolve mode. [Warning]
‘tables_priv’ entry ‘sys_config mysql.sys@localhost’ ignored in
–skip-name-resolve mode.
如果一定要使用skip-name-resolve参数,这个真心无解,在5.6中压根不会报localhost的错。
如果你不喜欢这个提示,只能说,不要使用skip-name-resolve参数。
还要即便你有心去把localhost修改为127.0.0.1,很多应用,比如wordpress这些默认访问localhost的应用,都会不可用,需要更改host为127.0.0.1才行。
如果你只有单一的数据库或应用。那就可以通过修改localhost为127.0.0.1来解决。我线上数据库和应用太多就懒得改了。
要是你没有远程访问数据库的话,只是在本地使用数据库,推荐你用skip-networking而不是skip-name-resolve。skip-name-resolve参数它的功能主要是禁用DNS解析的,而skip-networking参数是设置MySQL不要监听网络,也就只能本机访问。
还有一个大家看不出来,SQL Mode目前默认值为:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
我的建议是把NO_ZERO_IN_DATE和NO_ZERO_DATE去掉,因为毕竟很多产品(比如Wordpress)的默认值就是0000-00-00
00:00:00,如果不去掉是不被允许的。当然这个,无伤大雅。