我使用自制软件在我的Mac(10.10.1 / Yosemite)上安装了Postgresql 9.4.0 . 这是行不通的 .
我在〜/ Library / LaunchAgents中创建了/usr/local/opt/postgresql/homebrew.mxcl.postgresql.plist的软链接 .
如果我尝试手动加载postgres,我会收到“正在进行操作”的消息
> launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
/usr/local/Cellar/postgresql/9.4.0/homebrew.mxcl.postgresql.plist: Operation already in progress
然而,postgres似乎没有运行 .
> ps auxw | grep post
billmcn 670 0.0 0.0 2424272 452 s000 R+ 10:12PM 0:00.01 grep post
我无法连接命令行客户端 .
> psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
据我所知,我已经尝试了other Stackoverflow线程上讨论此问题的所有修复 . 特别:
-
我已经卸载并重新安装了postgres和随附的Ruby gem . 我的机器上没有postgres 8.0版本 .
-
我已经验证了psql客户端程序是Homebrew安装的9.4.0版本,而不是Mac系统二进制文件 .
-
我已经确认/usr/local/var/postgres/postmaster.pid不存在 .
-
我重新启动了机器 .
我之前确实有Homebrew postgres在这台机器上工作 . 我认为破坏它的是从版本8升级到版本9,但我不确定 .
我没有任何需要保留的数据库 . 我愿意用postgres开始清洁;我现在只需要让它上班 . 有任何想法吗?
该问题似乎是/ usr / local / var / postgres目录的权限 . 这是我的var目录在事情不起作用时的样子 .
ll /usr/local/var/
drwxr-xr-x 3 billmcn admin 102 Dec 20 12:44 cache
drwxr--r-- 2 root admin 68 Dec 29 21:37 postgres
(whoami =“billmcn”)
我删除了/ usr / local / var / postgres,卸载并重新安装了postgres,现在它看起来像这样 .
ll /usr/local/var/
drwxr-xr-x 3 billmcn admin 102 Dec 20 12:44 cache
drwx------ 23 billmcn admin 782 Dec 30 10:51 postgres
不知道它是如何进入这种状态的,因为我不记得在这个目录上的权限,但无论如何 . 它现在有效 .
5 回答
我在新安装的Yosemite上使用自制软件安装postgres时遇到了同样的问题 .
首先,我的brew配置如下所示:
我注意到的第一件事是我没有
/usr/local/var/postgres
的书面许可 . 这很容易改变发出sudo chown -R
whoami/usr/local/var/postgres
然后我重新安装postgresql并做了cat /usr/local/var/postgres/server.log
透露:
postgres cannot access the server configuration file "/usr/local/var/postgres/postgresql.conf": No such file or directory
所以我删除了目录
/usr/local/var/postgres
并发出了初始化数据库的命令 .initdb -D /usr/local/var/postgres/
这似乎已经成功了,postgres运行良好 .
我有同样的问题 . 这里的主要问题是initdb安装步骤将创建具有root所有权的目录,而不是Mac上的用户 . 要解决这个问题:
在运行
initdb
之前创建数据目录并设置权限0700然后运行
initdb
,它将尊重数据目录的权限 .对于grins和giggles,创建一个以用户命名的测试数据库:
登录测试:
在尝试使用Homebrew安装postgresql后,我得到了这个:
所以我尝试过:
并得到这个错误:
这似乎是一个写权限问题,所以我做了:
这样做是因为,然后我能够做到(没有错误):
请注意,他们是Homebrew的github上处理此问题的一个帖子:https://github.com/Homebrew/homebrew/issues/35240
我有类似的问题 . 詹姆斯回答帮我解决了 . 但是我接着讨论了jbk提到的问题(在删除/ usr / local / var / postgres之后,它继续被重新创建) .
问题是,如果您已创建符号链接:
并启动了这个过程:
你应该先卸载它:
在运行詹姆斯的命令之前 .
此外,如果像我一样,你有管理自制软件的管理员用户和将使用pgsl进行开发的普通用户,那么James命令应该以超级用户身份运行:
和postgres目录的所有权应该给你的开发者用户:
以dev用户身份运行的以下命令应该正确填充目录:
运行:
应该在这样的操作之后向你展示postgre中的表和用户权限 .
希望这可以帮助 .
检查@leo_chaz_maltrait以修复错误错误
Could not symlink share/man/man3/SPI_connect.3
可能出现的另一个错误是:Error: Could not symlink lib/pkgconfig/libecpg.pc