今天在ubuntu20下安装mysql5.7,遇到一个巨大的坑,记录一下,以作留念。
mysql安装完成,启动正常。然后准备修改一下配置文件,采用大小写不敏感的模式,也就是说,在mysql的配置文件中,在[mysqld]下面增加 lower_case_table_names=1 。本来很简单的一个事情,但我想到今后可能会经常修改这个文件,又懒得每次sudo,于是我就执行了 $ sudo chmod a+w mysqld.cnf 命令,执行后,就可以在普通用户模式下直接 nano mysqld.cnf进行修改了。这个小聪明让我付出了一天的代价。重启mysql,我发现配置没有生效。无论怎么修改,无论怎么重启,配置文件就是不生效。我开始怀疑mysql配置文件路径是不是不对,配置项是否有非法字符等等,所有能想到的地方,都去尝试、都去排除,最后仍然无效。
最后,我终于想起曾经干过的修改权限,但我认为这个权限并不会产生影响啊,mysql是root用户启动的,对这个配置文件,是能读到的呀。抱着死马当作活马医的心态,我把权限恢复为644,也就是: sudo chmod 644 mysqld.cnf ,然后重启mysql服务,居然就Ok了。
本着知其然必知其所以然的原则,在google上搜了一下,找到了一篇文章说了这个事情:linux - mysql permissions issue - associated with my.cnf - Server Fault, 这才明白不能乱改这个配置文件的权限。
希望本文能帮到你。