pg_ctl工具执行reload命令报错:命令行参数过多问题咨询
解决pg_ctl reload时"too many command-line arguments"报错
这个报错原因很明确——你的数据目录路径里有空格(C:\Program Files\PostgreSQL\10\data),Windows命令提示符会把空格默认当成参数分隔符,所以它把C:\Program识别成了一个额外参数,后面的Files\PostgreSQL\10\data又被当成另一个,直接触发了"参数过多"的错误。
这里给你三个实用的解决方法,选哪个都可以:
给路径套双引号(最直接)
把带空格的路径用双引号包裹,告诉命令提示符这是一个完整的参数。执行命令改为:pg_ctl reload "C:\Program Files\PostgreSQL\10\data"使用Windows短路径(无空格替代)
Windows对带空格的文件夹有对应的8.3格式短名称,比如Program Files通常对应PROGRA~1。你可以用短路径来执行命令:pg_ctl reload C:\PROGRA~1\PostgreSQL\10\data要是不确定目标文件夹的短名称,进入
C:\目录后执行dir /x就能看到所有文件夹的短名称列表。切换到数据目录再执行(最省心)
pg_ctl在当前工作目录是数据目录时,不需要额外指定路径。先切换目录:cd "C:\Program Files\PostgreSQL\10\data"然后直接执行重载命令:
pg_ctl reload
执行正确的命令后,你会看到server signaled的提示,这就说明配置重载成功了。
内容的提问来源于stack exchange,提问作者DDD
相关产品推荐
相关产品推荐

