mysql查询报错1146_MySQL查询报错:ERROR 1146 (42S02): Table 'craw.sitePageConfig' doesn't exist...

今天一同事咨询mysql的问题,在mysql主库访问某个表报错, 但是备库上可以,感觉有点奇怪。即使不同步,

也不能说主库不能访问啊。

既然是主备,就从主备同步开始查。各种show master status\G, show binary logs , 在备库上show slave status\G,

在备库上看到:

Salve_IO_Runing : NO

Salve_SQL_Runing : YES

显然已经不同步了,看到Relay_Master_Log_File是 mysql-bin.000064, 但是在主库上show binary logs查看的是:67,68,69,

已没有了 64,65,66 。

在备库上也看到了Last_IO_Error的报错很明显,1236严重错误,Could not find first log file name in binary log index file.

不同步确认了,那么为啥主库的表也不能访问呢。权限确认了,没有问题。遇到的最多的应该就是大小写问题了,这个也是mysql

做的比较差的地方。 在主库查询全部是小写的表,没有报错,查询大小写混合的表,都报错,提示一样 :

ERROR 1146 (42S02): Table 'craw.sitePageConfig' doesn't exist

询my.cnf下的lower_case_table_names参数,发现果然,参数是1,默认是0来的,查看my.cnf文件修改日期,是2天前,而备

库上的my.cnf是半年前的。大致找到原因后,如何进行解决呢 ? 改回来 ?

回来(改为0)其实应该是OK的。待验证。其实在Linux/Unix下会碰到这种错误,在windows下不会。 为什么呢。因为MySQL中

数据库相当于数据目录下的目录,表相当于目录下的文件,而Linux/Unix系统是区分大小写的(windows不区分),创建了大小写混合

的库或表后,我们在修改参数lower_case_table_names=1 ,这时MySQL将所有SQL中的表名都翻译为了小写(为了大小写不敏感),

但是Linux下没有全部是小写的这个文件或目录(表或库)。 就出现了找不到的情况。

如果你是windows平台下开发的,完了之后放到Linux上,很可能会碰到这个错误。必须去掉大小写敏感。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值