提示无表名mysql_mysql数据库show tables 显示表名,但是查询的时候却提示此表不存在...

找到mysql安装目录下的my.cnf文件:

找到default-storage-engine=INNODB 改为default-storage-engine=MYISAM

重启mysql!

还是同样的错,按照上面的提示修改;但是在第九步的时候重启mysql根本启动不了!!!报错为pid无法更新!!!

删除ibdata1,重启成功!

但是表还是不存在错误;

http://jazka.blog.51cto.com/809003/330418

找呀找,试呀试,想把表删除之后重建,但是删除是提示找不到表,晕死!然后又执行scp命令,把服务器上的该表的三个文件同时复制到本地,重启服务,还是不行!

看到有说执行修复myisamchk filename管用,管个屁用,表都找不到

然后又是mysql>  SOURCE /download/mysql-5.6.14/build/scripts/mysql_fix_privilege_tables.sql修复,以为OK,空欢喜一场!

时间慢慢过去,一阵一阵的痛骂,但是问题还是在哪里,理清思路,沉着冷静,继续前行

终于不服有心人,看到了

项目在开发的时候在WINDOWS平台下开发的,开发完了之后在LINUX环境上部署好之后,运行时MySQL数据库报错,提示为某个表不存在之类的错误信息,后来修改了MySQL的配置文件将大小写敏感去掉,问题解决。

这个问题的根源在于,在 MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。

MySQL大小写敏感可以通过配置文件的lower_case_table_names参数来控制。

WINDOWS:

编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名。

LINUX:

编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0)。

赶紧在/etc/my.cnf中添加lower_case_table_names=1 参数!

好了,欲哭无泪呀!!!!

总结:对mysql的配置不明!理解不彻!不能瞎找解决方案,尽管有些问题的描述很相似,但是解决问题的方法却是截然不同!应该分析产生问题的原因,理解自己所处的环境,看清未来的方向!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值