好的,我已经从 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
,然后重新加载数据。