MySQL的my.ini文件在Windows上的哪个位置?

122
我已经看过了 http://dev.mysql.com/doc/refman/4.1/en/mysql-config-wizard-file-location.html 我如何找到MySQL的my.cnf文件位置

http://dev.mysql.com/doc/refman/5.1/en/option-files.html

但是我仍然困扰于这个古老的问题! "我的 my.ini 文件在哪里?" 我正在使用 Windows Server 2008 和 MySQL 5.5.28。我使用 mysqld --install 命令安装了服务,并且可以使用 sqlyog 连接到 MySQL 服务器。但是不幸的是,我无法在安装目录、C 盘、Windows 目录或 data_dir 目录中找到 my.ini 文件。查询 show variables like "mysql_home" 也没有返回任何结果。
有什么建议吗?

6
在MySQL 5.6中,数据和my.ini文件存储在(至少在我这里是)C:\ProgramData\MySQL\MySQL 5.6 - moriesta
17个回答

212

在使用安装向导安装基于Windows的MySQL 5.6 MSI版本时,my.ini文件的位置

打开Windows命令行并输入:echo %PROGRAMDATA%。在Windows Vista中,结果为:C:\ProgramData

根据http://dev.mysql.com/doc/refman/5.6/en/option-files.html,MySQL将首先查找位于%PROGRAMDATA%\MySQL\MySQL Server 5.6\my.ini下的文件。在您的Windows shell中,如果您键入ls "%PROGRAMDATA%\MySQL\MySQL Server 5.6\my.ini",您会看到该文件已经在那里。

与Stackoverflow和网络上大多数建议不同,将文件放置在C:\Program Files\MySQL\MySQL Server 5.6\my.iniC:\Program Files (x86)\MySQL\MySQL Server 5.1都无法正常工作。这是因为在MySQL链接中引用的原因:

  

在Windows上,MySQL程序按照指定顺序从以下文件中读取启动选项(首选项最先使用)。

5.6 MSI安装程序确实会最高优先级位置创建my.ini文件,这意味着除了安装程序创建的文件之外,不会找到或使用其他文件。

上面接受的解决方案对于基于5.6 MSI的安装无效。


4
是的,我的文件在 %PROGRAMDATA%\MySQL\MySQL Server 5.6 中。虽然我更希望它在程序文件中... - jurchiks
@amateur-barista,你知道如何使安装程序使用Program Files中的my.ini文件而不是ProgramData中的文件吗?另外,如何使MySQL Workbench使用我提供的文件而不是安装程序创建的文件? - NurShomik
在Windows上,MySQL程序按指定顺序从以下文件读取启动选项(首先读取顶部文件,后来的文件具有优先权)。我不明白,为什么那是最高优先级的位置? - StackExploded
那么为什么MySQL Workbench在许多地方建议使用安装目录中的文件呢?为什么MySQL文档(从my-default.ini链接)中没有提到这一点呢?我非常沮丧 :-( - Josef Sábl

115
  1. 在开始菜单搜索框中输入"services.msc"。
  2. 在“Name”列下找到MySQL服务,例如MySQL56。
  3. 右键单击MySQL服务,选择“属性”菜单。
  4. 在常规选项卡下查找“可执行文件路径”,这里是您的 .ini 文件,例如:“C:\Program Files (x86)\MySQL\MySQL Server 5.6\bin\mysqld.exe” --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MYSQL56

我在Windows Server上安装了MariaDB,只看到了"C:...\mysql\bin\mysqld MySQL"。 - Soma Holiday

51
我已经找到了我的东西。
\ProgramData\MySQL\MySQL Server 8.0\

(这是一个隐藏的文件夹)

您可以按下 win+R 并输入 %PROGRAMDATA% 来访问该文件夹,或者只需启用显示隐藏文件夹。


40

你需要查看文件夹 C:\Program Files\MySQL\MySQL Server 5.5,但有一个问题。当你执行MySQL的MSI安装时,my.ini文件不会被创建。在该文件夹中将会有示例 .ini 文件。如果你想使用其中一个,比如说 my-medium.ini,在MySQL重启之前需要进行以下操作:

cd C:\Program Files\MySQL\MySQL Server 5.5
copy my-medium.ini my.ini
net stop mysql
net start mysql

一旦完成这个步骤,C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe就可以读取my.ini了。


53
如果你使用MSI安装程序,它会在%PROGRAMDATA%\MySQL\MySQL Server X.Y\中创建一个my.ini文件并使用它。因此,这个解决方案无法与其一起使用。 - NurShomik
4
为了使用您创建的my.ini文件运行MySQL服务,您需要先停止当前的服务net stop mysql,然后删除它:sc remove mysql。接下来,您需要安装一个新的服务:"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --install newMySQL --defaults-file="C:\Program Files\MySQL\MySQL Server 5.7\my.ini"现在,您可以通过net start newmysql命令运行该服务。 - NurShomik
2
只是想改进注释,Windows 10 上应该是“sc delete”而不是“sc remove”。 - lsc
1
那真是太有帮助了,谢谢。只想指出可以安装指向服务中的ini文件(在Windows中明显),所以首先应该查看服务面板,看看是否有--defaults-file开关指向不同位置的ini文件。非常感谢RolandoMySQLDBA和NurShomik帮我解决问题! - gringogordo
7
对于 Windows 上的 MySQL 5.7,my.ini 配置文件的位置可能是在 "C:\ProgramData\MySQL\MySQL Server 5.7\my.ini"。 - Mohsin Saeed
显示剩余3条评论

28

打开MySQL Workbench,然后选择Server -> Options File,然后查看窗口底部;会显示类似于"配置文件: C:\ProgramData\MySQL\MySQL Server 5.6\my.ini"的内容。

(请注意"ProgramData"和"Program Files"之间的微妙差别 - 如果您正在寻找快速答案可能很容易被忽略。)


2
在MySQL Workbench 6.1中,主菜单上没有“服务器”选项,除非您打开了一个数据库。因此,您首先需要打开本地数据库。然后,您可以选择“服务器”>“选项文件”。在我的系统中,这会弹出一个对话框,说找不到C:\Program Files\MySQL\MySQL Server 5.0\my.ini文件(但将创建一个文件)。有点困惑,因为我正在运行更新版本的MySQL,并且它安装在其他位置。所以,这个谜底还没有揭晓。 - gwideman

11

以下回答仅适用于MySQL Workbench用户:

在此输入图片描述


9

在Windows中,您可以在以下位置找到my.ini文件 — C:\ProgramData\MySQL\MySQL Server 5.6。

ProgramData文件夹是隐藏文件夹,因此请进行相应的设置以查看该文件夹。以管理员身份打开my.ini文件进行编辑,然后保存。


4
在我的情况下,Windows 7 默认隐藏了文件夹 ProgramData,所以我找不到 my.ini 文件。选择显示隐藏文件和文件夹选项后,我在以下位置找到了 C:\ProgramData\MySQL\MySQL Server 5.6my.ini 文件。
在 Windows 7 上显示隐藏文件和文件夹的方法:
  1. 右键单击 Windows 徽标按钮,选择“打开 Windows 资源管理器”。

  2. 点击“组织”,选择“文件夹和搜索选项”。

  3. 点击“查看”选项卡,选中“显示隐藏的文件和文件夹”,然后取消选中“隐藏受保护的操作系统文件(推荐)”复选框。

  4. 在警告框上点击“是”,然后点击“确定”。


3

按下Windows键 > 输入services > 按Enter键 > 在列表中查找mysql > 右键单击 > 属性 > 可执行文件路径正下方是默认文件的位置(my.ini)


2

MySQL和MariaDB

根据MySQLMariaDB的文档,您需要使用--help --verbose运行mysql以了解my.ini文件的位置。

进入命令或终端

cd yourMySQLBinDirectory
mysqld --verbose --help

您会看到大量输出,但是前几行将显示服务器正在查找文件的顺序。我得到了以下回应。对于您的计算机或服务器,它将是不同的。
Default options are read from the following files in the given order:
C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf D:\Databases\mariadb-10.3.30-winx64\my.ini D:\Databases\mariadb-10.3.30-winx64\my.cnf D:\Databases\mariadb-10.3.30-winx64\data\my.ini D:\Databases\mariadb-10.3.30-winx64\data\my.cnf

在Windows PowerShell中,您可以简单地运行以下命令: mysqld --verbose --help | sls -Context 1 "Default options are read from the following files in the given order:" 而在Mac/Linux上,则是: mysqld --verbose --help | grep -A 1 "Default options are read from the following files in the given order:" - digitalguy99

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接