【问题标题】:MySQL and Windows 10, I receive an error "The server is configured with lower_case_table_names=1..."MySQL 和 Windows 10,我收到错误“服务器配置为 lower_case_table_names=1...”
【发布时间】:2016-11-19 18:54:02
【问题描述】:

我在 Windows 10 上使用 MySQL Server 5.7 和 MySQL Workbench 6.3 CE。我已经在包括 Stack Overflow 在内的多个网站上筛选了几页与此相关的问题,但无法弄清楚我可以在哪里修改服务器以便它is 配置为 lower_case_table_names=2,而不是 lower_case_table_names=1。

我看到的许多答案都指向找到以“my.ini”或“my.cnf”结尾的文件,我无法在我的光盘上找到这两个文件。说实话,我是一个SQL初学者,看不懂很多用户指向的教程页面,即:

http://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html

几乎我从参考大写表名、列等中学习的每一个资源,这就是为什么我想使用大写而不是小写。

例如,如果我创建一个名为 EmployeeInfo 的表和几列,当我单击“应用”时会出现此错误:

Apply Changes to Object

The server is configured with lower_case_table_names=1, which only allows lowercase characters in schema and table names. The object will be created as 'employeeinfo'.

我希望将表命名为 EmployeeInfo。我不希望它是小写的。但是,我无法找到与此问题相关的其他答案中提到的所谓的“my.ini”或“my.cnf”文件。

或者,当您进一步使用 SQL 时,习惯使用小写字体是一种最​​佳做法吗?

编辑:

我相信我找到了所谓的“my.ini”文件,但没有“ini”文件类型。它被标记为“配置设置”。

但是,搜索后我在里面找不到任何与“lower_case_table_name=1”相关的内容。

编辑 2:

我在系统选项文件中找到了“lower_case_table_names”选项并将其更改为“2”。

但是,当我点击“应用”时,它告诉我:

无法保存配置文件

错误如下所示:

Error

【问题讨论】:

  • 您是否使用“SHOW VARIABLES”命令检查参数?
  • 看这里找到配置文件位置:dev.mysql.com/doc/refman/5.7/en/option-files.html
  • 感谢您的回复。我在哪里检查那个参数?
  • 所以我在重新安装 MySQL 并将其放入我的“程序文件”文件夹而不是“程序数据”文件夹后找到了“数据”文件夹,这在我的计算机上似乎是不可见的。有一个“auto.cnf”文件,但我不知道如何处理它。

标签: mysql sql


【解决方案1】:

当你升级到最新版本时,这个问题与 Docker 本身有关,升级时发生在我身上。尝试将 Docker 降级到您的早期版本。

【讨论】:

    【解决方案2】:

    MySQL 5.7 规范似乎一般recommend sticking with lowercase table names

    ...为避免此类差异引起的问题,最好采用 一致的约定,例如总是创建和引用 使用小写名称的数据库和表。这个约定是 推荐用于最大的便携性和易用性...

    无论如何,这里是您查看变量设置的方式:

    SHOW variables like 'lower_case_table_names';
    

    以下是您如何更改该变量设置以允许您的 CamelCase:

    lower_case_table_names = 1 (<- put in your mysql config file)
    restart mysql
    

    【讨论】:

    • 谢谢,gfunk!但是,我不想将其更改为“lower_case_table_names=2”吗?另外,当我运行查询时: SET global lower_case_table_names=2;我收到此错误:'错误代码:1238:变量'lower_case_table_names'是只读变量。'
    • 是的,我的错(我不确定它是设置为 0 还是 2,但不是 1) - 我将测试并编辑该帖子。是的,可能需要编辑 mysql 配置文件并重新启动...
    • 谢谢,gfunk。您可以检查我在原始帖子中的第二次编辑吗?我想我找到了我必须去的地方,但最后一步是抛出错误。
    • 我不知道对不起。看起来像 Windows 文件权限错误 - 我个人只是制作文件的备份副本,然后手动编辑它,或者在 StackOverflow 中搜索该特定文件权限错误......我使用的是 Ubuntu,所以我只是 vi /etc/mysql/my.cnf,粘贴在线,然后service mysql restart(我测试过,它在我的操作系统上运行,相应地更新了我的帖子)
    • 一切都好。谢谢你的帮助。我实际上以管理员身份打开了 Workbench(右键单击以管理员身份运行,即使我是我的计算机的管理员),这让我可以更改它。但是,即使我在将 lower_case_table_names 设置为 2 并应用它之后创建了一个表,它仍然不起作用。哦,好吧。
    猜你喜欢
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 2019-03-14
    • 2021-07-14
    • 1970-01-01
    • 2019-10-25
    • 2020-05-03
    • 2019-09-08
    相关资源
    最近更新 更多