Contents

测试一个程序,提示找不到表。数据库看了一下表都存在的啊。貌似就大小写不对。抓执行的sql语句看了一下:


发现同一个表既有使用大写也有使用小写,也是醉了。google: mysql table name case sensitive就可以找到解决方案。参考mysql的文档:9.2.2 Identifier Case Sensitivity

windows上默认不区分大小写,但是linux上默认区分大小写。可以通过lower_case_table_names参数调整。设置lower_case_table_names=1可以不区分大小写。

我这里使用了官方的mysql docker镜像来做测试环境,只要添加一个启动参数就可以了。

docker run -d -p 3306:3306 --name=appmysql5 -e MYSQL_PASS="root" -e MYSQL_USER="root"  -e EXTRA_OPTS="--log-raw" -e EXTRA_OPTS="--lower_case_table_names=1"  xd/mysql5.6:v1
Contents