好的,所以我已经从OS实例中转储了一个MySQL 5.x数据库,并且在将数据库导入OpenShift MySQL 5.5容器时遇到了问题。我的表是骆驼大小写(如" tblaccounts“),但是脚本会抛出诸如”无法找到表tblaccounts“之类的错误。
我相信MySQL的lower_case_table_names标志在OS上被设置为2,并且我能够在OpenShift上执行一个rhc命令将这个变量从0更改为2。我一直在找丢失的表错误。
我尝试过这个标志的多个组合,并尝试从使用mysqldump和MySQL工作台创建的脚本中重新加载db,而且我还没有找到没有出现此错误的干净方法。关于如何干净利落地做这件事,我没有什么想法了。有什么建议吗?谢谢,
光纤通道
发布于 2016-03-01 10:34:32
我知道现在有点晚了--但是对于任何有这个问题的人来说。
MariaDB将在启动时将lower_case_table_name从2更改为0,如果它看到它位于区分大小写的文件系统上:
[Warning] lower_case_table_names was set to 2, even though your the file system '/var/lib/mysql/' is case sensitive. Now setting lower_case_table_names to 0 to avoid future problems.
我想mysql也会做同样的事情(因为它是分叉的)。
您可以将其设置为1,但是这需要花费。对于我(也是从MacOS迁移过来的)来说,我能够在加载数据库之后做到这一点。效果很好..。但是,关于1和2之间的区别,这似乎违背了文档。如果mysql对此不满意,您可能不得不空白数据库,将其设置为1,然后重新加载数据。
https://serverfault.com/questions/670815
复制相似问题