时间:2021-05-23
MySql Error 1146 Tabel doen't exist,一般情况下是表不存在,或者表名写错了、权限问题。
今天遇到了这个问题,仔细核对几遍后,确认无误,又在phpMyAdmin里尝试select,可以查询出数据。又核对权限,确认该mysql用户具有所有权限。那这个错误是怎么回事呢?查询了一些资料后,发现如果mysql引擎不对可能会造成真实存在的表却无法访问,但是发现引擎都是myisam。
这下犯愁了,错误出在哪里呢?又找了半天,仍然无果。无辜的看着这段报错代码,发呆了半天,突然发现了一个已经被我忽视的细节,详细的报错代码为 Tabel ABC doen't exist,这里的表名为大写,而数据库中的表名为abc(马冬注:只为举例,没有此表),是小写的。在phpMyAdmin用大写表名ABC尝试select,果然报错提示Tabel ABC doen't exist。
到这里,问题清楚可见,原因是一个被我忽略的问题:windows服务器下,mysql的数据表是大小写不敏感的,而linux服务器默认情况下大小写敏感。如果linux服务器要修改成大小写不敏感,可以找到/etc/my.cnf,在[mysqld]下加入一行: lower_case_table_names=1。(马冬注:lower_case_table_names默认情况下为0,及表名大小写敏感;修改为1,即大小写不敏感)。如果没有修改服务器配置的权限,那就注意出现的每一个表名都要大小写一致。
不注意小细节,往往会浪费很多时间的。细节决定成败。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
MYSQL对大小写敏感见字如面,见标题知内容。你有遇到过因为MYSQL对大小写敏感而被坑的体验吗?之前看过阿里巴巴Java开发手册,在MySql建表规约里有看到
问题原因:linux对于大小写是敏感的,所以才会出现点击登录没有反映的情况。解决办法:1.让mysql忽略大小写(懒人做法,存在弊端)1vim/etc/my.c
当我们输入不管大小写都能查询到数据,例如:输入aaa或者aaA,AAA都能查询同样的结果,说明查询条件对大小写不敏感。解决方案一:于是怀疑Mysql的问题。做个
mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的。1
mysql默认varchar类型是对大小写不敏感(不区分),如果想要mysql区分大小写需要设置排序规则:utf8_bin将字符串中的每一个字符用二进制数据存储