Mysql 如何解决Can';t连接到';本地主机';(10061)和#x9 ;;设置小写字母表名称时=0?

Mysql 如何解决Can';t连接到';本地主机';(10061)和#x9 ;;设置小写字母表名称时=0?,mysql,sql,windows,settings,Mysql,Sql,Windows,Settings,在mysql中创建表时,我注意到我所有的表名都以小写开头,即使我将它们命名为大写 我发现进入: C:\ProgramData\MySQL\MySQL服务器8.0 打开my.ini文件并更改小写字母表\u name=0 我会根据你的建议去做 完成上述操作后,我关闭服务器,重新启动电脑 当再次尝试启动服务器时,我收到以下错误: 无法连接,服务器可能未运行。无法连接到MySQL “本地主机”(10061)上的服务器 当我更改回lower\u case\u table\u names=1 它又起作用了。

在mysql中创建表时,我注意到我所有的表名都以小写开头,即使我将它们命名为大写

我发现进入:

C:\ProgramData\MySQL\MySQL服务器8.0

打开my.ini文件并更改
小写字母表\u name=0

我会根据你的建议去做

完成上述操作后,我关闭服务器,重新启动电脑 当再次尝试启动服务器时,我收到以下错误:

无法连接,服务器可能未运行。无法连接到MySQL “本地主机”(10061)上的服务器

当我更改回
lower\u case\u table\u names=1

它又起作用了。我如何解决这个问题

编辑:

我没有进入ini文件,而是发现我可以通过

选项文件

然后在“常规”选项卡下,我找到了
小写字母表名称
,并将其更改为0


但同样的错误

我建议您在此配置中使用value
2
,因为您试图在windows计算机上使用
0
,这可能会导致数据库表出现问题,具体取决于for windows/Mac OS对value
0
的使用情况:

表名和数据库名使用大写字母存储在磁盘上 在CREATE TABLE或CREATE DATABASE语句中指定。名称 比较区分大小写不应将此变量设置为0 如果您在具有不区分大小写文件的系统上运行MySQL 名称(如Windows或macOS)。如果使用强制将此变量设置为0 --小写表格名称=0(在不区分大小写的文件系统上),并使用不同的字母大小写、索引损坏访问MyISAM表格名称 可能会有结果

在链接文档中,值
2
将为您的案例提供帮助,它将使用您使用的相同名称将表存储在磁盘上,在这种情况下,查找将不区分大小写:

表名和数据库名使用大写字母存储在磁盘上 在CREATE TABLE或CREATE DATABASE语句中指定,但MySQL 在查找时将其转换为小写。名称比较不是大小写 敏感的这仅适用于不可用的文件系统 区分大小写!InnoDB表名和视图名存储在 小写,如小写字母表名称=1

正如你在这里看到的

从8.0.5开始

现在禁止使用小写字母表名称启动服务器 与服务器运行时使用的设置不同的设置 初始化。此限制是必需的,因为 各种数据字典表字段都基于在以下情况下定义的设置: 服务器已初始化,并以不同的方式重新启动服务器 该设置将导致标识符的使用方式不一致 进行排序和比较


禁止这样做会导致服务无法启动。

可能这两个答案都是相关的——操作系统在处理文件名方面的差异导致8.0之前需要使用该标志。8.0通过将表名存储在内部InnoDB数据库(新的“数据字典”)中添加到该问题中。