修改Windows服务Binpath的正确引号语法:MySQL服务配置迁移问题
修改MySQL服务BinPath的引号格式问题
问题背景
需要修改名为MySQLd的MySQL服务启动参数,原BinPath为:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MyDatabaseInstance
目标是将配置文件路径改为D:\Database\my.ini,最终BinPath应为:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="D:\Database\my.ini" MyDatabaseInstance
因为要迁移配置同时升级MySQL版本,无法直接导出旧服务器的注册表项,必须通过sc.exe命令修改。之前尝试的命令只给可执行文件路径加上了引号,但--defaults-file后的配置文件路径没有正确带上引号:
sc.exe config MySQLd binPath= "\"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe\" --defaults-file="D:\Database\my.ini" MyDatabaseInstance
正确命令示例
命令提示符(CMD)环境
sc.exe config MySQLd binPath= "\"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe\" --defaults-file=\"D:\Database\my.ini\" MyDatabaseInstance"
PowerShell环境
sc.exe config MySQLd binPath= '"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="D:\Database\my.ini" MyDatabaseInstance'
关键说明
sc.exe的binPath=参数后必须保留空格,这是命令的语法要求- CMD环境下,每个需要保留的双引号都要用反斜杠
\转义;PowerShell中可以用单引号包裹整个BinPath内容,内部双引号直接使用即可 - 执行完成后,可通过
sc.exe qc MySQLd命令查看BINARY_PATH_NAME字段,验证BinPath是否设置正确
内容的提问来源于stack exchange,提问作者FrostWolf
相关产品推荐
相关产品推荐

