OpenShift/MySQL 错误:从 OS X 迁移到 OpenShift 时出现 lower_case_table_names 错误

OpenShift/MySQL 错误:从 OS X 迁移到 OpenShift 时出现 lower_case_table_names 错误

好的,我已经从 OS X 实例转储了 MySQL 5.x 数据库,但在将数据库导入 OpenShift MySQL 5.5 容器时遇到了问题。我的表是驼峰式 (例如“tblAccounts”),但脚本抛出了“找不到表 tblaccounts”之类的错误。

我相信 MySQL 的 lower_case_table_names 标志在 OS X 上设置为 2。并且我能够执行 rhc set env 命令在 OpenShift 上将此变量从 0 更改为 2。我不断收到缺失表错误。

我尝试过此标志的多种组合,并尝试从使用 mysqldump 和 MySQL Workbench 创建的脚本重新加载数据库,但我没有找到一种干净的方法,不会出现此错误。我不知道如何干净地做到这一点。有什么建议吗?谢谢,

足球俱乐部

答案1

我知道这有点晚了——但对于其他遇到这个问题的人来说。

lower_case_table_name如果 MariaDB 发现它位于区分大小写的文件系统上,它会在启动时将 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,然后重新加载数据。

相关内容