Ubuntu安裝mysql后配置/etc/my.cnf配置文件沒生效,解决办法

1、问题描述

     在Ubuntu上安装mysql数据后集成Flowable工作流软件后,发现自动生成的表名全部为大小,但之前之间的程序都是用的小写的表名,自写sql执行时报找不到表。一番google发现linux上的mysql默认区分表名大小写,需要修改数据库配置。按照这个博客上描述的方法在/etc/my.cnf 文件中添加 lower_case_tables_name = 1 ,重启数据库发现参数并没有生效。

2、问题产生原因

    linux内核中有一个强制访问控制系统——Apparmor (具体介绍可参考:https://www.cnblogs.com/-Lei/archive/2013/02/24/2923947.html)限制了mysql服务的文件访问范围。

查看自己服务器上的配置

cat /etc/apparmor.d/usr.sbin.mysqld

可以看到mysql配置文件所在的配置/etc/my.cnf没有访问权限。

3、解决办法

修改配置文件 /etc/apparmor.d/usr.sbin.mysqld

vi /etc/apparmor.d/usr.sbin.mysqld

添加一行

重启系统

reboot

执行查询命令

show VARIABLES LIKE '%table_names%'

修改成功,

将数据库中flowable自动创建的表删除重启应用,发现表名已成功切换为小写。

Logo

更多推荐