使用az mysql flexible-server restore时source_server路径篡改报错求助
解决Azure CLI在GitBash中执行MySQL弹性服务器恢复时资源ID被篡改的问题
问题原因:GitBash会自动将以/开头的字符串解析为Unix风格路径,并转换为Windows本地路径,导致Azure CLI收到错误的source_server参数值。
以下是可行的解决方法:
临时禁用GitBash的路径转换
在执行命令前添加环境变量MSYS_NO_PATHCONV=1,阻止GitBash转换路径:MSYS_NO_PATHCONV=1 az mysql flexible-server restore --source-server "/subscriptions/$subscriptionorigin/resourceGroups/$RG/providers/Microsoft.DBforMySQL/flexibleServers/$server" --其他参数用单引号包裹资源ID(适用于直接写死ID的场景)
单引号会让GitBash不解析内部的路径格式,直接传递原始字符串:az mysql flexible-server restore --source-server '/subscriptions/76f790a3-75b7-445c-a345-c2c0547e74ce/resourceGroups/ReactivacionComfama/providers/Microsoft.DBforMySQL/flexibleServers/flex-mysql-dev-qa' --其他参数转义资源ID开头的斜杠(适用于带变量的场景)
在资源ID的开头斜杠前添加反斜杠,避免GitBash识别为本地路径:az mysql flexible-server restore --source-server "\/subscriptions/$subscriptionorigin/resourceGroups/$RG/providers/Microsoft.DBforMySQL/flexibleServers/$server" --其他参数切换到CMD或PowerShell执行命令
直接使用Windows原生终端(CMD/PowerShell),这类终端不会对Azure资源ID做路径转换,直接执行原命令即可:az mysql flexible-server restore --source-server "/subscriptions/$subscriptionorigin/resourceGroups/$RG/providers/Microsoft.DBforMySQL/flexibleServers/$server" --其他参数
内容的提问来源于stack exchange,提问作者denilson hernandez serpa
相关产品推荐
相关产品推荐

