教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 linux平台mysql区分表名大小写的问题

linux平台mysql区分表名大小写的问题

发布时间:2015-11-12   编辑:jiaochengji.com
在用php开发程序时,是在windows的环境下,一直没有注意什么表名大小写的问题。但在部署yii 项目到linux时出现问题了,yii 的rbac 的表找不到,报错如下:

在用php开发程序时,是在windows的环境下,一直没有注意什么表名大小写的问题。

但在部署yii 项目到linux时出现问题了,yii 的rbac 的表找不到,报错如下:
CDbCommand 无法执行 SQL 语句: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'si_manager.AuthAssignment' doesn't exist. The SQL statement executed was: SELECT * FROM `AuthAssignment` WHERE userid=:userid

检查mysql数据库,在linux机器上的mysql中是有此表的,如下图所示:
table.jpg

经过仔细看提示,发现是大小写略微不同,之后手工执行出错的语句,同样报错,于是确定是大小写的问题了。
原来,mysql在linux中表名是区分大小写,当然您也可以将其配置成不区分大小写,linux对文件的严格近乎苛刻啊。

在/etc/my.cnf 里的[mysqld]下面增加lower_case_table_names=1即可不区分大小写了,具体如下图所示:
mysqld.jpg

您可能感兴趣的文章:
linux平台mysql区分表名大小写的问题
linux下Mysq表名的大小写问题解析
有关Mysql的大小写敏感性
Linux系统分区详解
详解mysql数据表的分表策略
PostgreSQL从菜鸟到专家系列教程(1)PostgreSQL介绍
mysql不区分表名大小写的设置方法
php大小写敏感问题的总结(实用型)
MySQL常见错误代码解析
设置MYSQL不区分表名称大小写

[关闭]
~ ~