Ram*_*amy 942 postgresql macos homebrew
最终更新:
我忘记了执行initdb命令.
</ FINAL UPDATE>
通过运行此命令
ps auxwww | grep postgres
Run Code Online (Sandbox Code Playgroud)
我看到postgres没有运行
> ps auxwww | grep postgres
remcat 1789 0.0 0.0 2434892 480 s000 R+ 11:28PM 0:00.00 grep postgres
Run Code Online (Sandbox Code Playgroud)
这提出了一个问题:如何启动postgresql服务器?
更新:
>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory
Run Code Online (Sandbox Code Playgroud)
更新2:
触摸不成功所以我这样做了:
> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/
server.log
Run Code Online (Sandbox Code Playgroud)
但是当我尝试启动rails服务器时,我仍然看到:
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)
更新3:
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
Run Code Online (Sandbox Code Playgroud)
更新4:
我发现没有pg_hba.conf(只有pg_hba.conf.sample)所以我修改了样本并将其重命名(以移除.sample).以下是内容:
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
Run Code Online (Sandbox Code Playgroud)
但我不明白这个:
> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
Run Code Online (Sandbox Code Playgroud)
也:
sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
Run Code Online (Sandbox Code Playgroud)
更新5:
sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.
Run Code Online (Sandbox Code Playgroud)
更新6:
这看起来很奇怪:
> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory
Run Code Online (Sandbox Code Playgroud)
不过,我这样做了:
>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample
Run Code Online (Sandbox Code Playgroud)
所以我这样做了:
egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#port = 5432 # (change requires restart)
# supported by the operating system:
# %r = remote host and port
Run Code Online (Sandbox Code Playgroud)
所以我试过这个:
> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf
Run Code Online (Sandbox Code Playgroud)
仍然是相同的"服务器正在运行吗?" 信息.
jam*_*man 1753
该自制包管理器包括launchctl的Plist自动启动.欲了解更多信息运行brew info postgres.
手动启动:
pg_ctl -D /usr/local/var/postgres start
手动停止:
pg_ctl -D /usr/local/var/postgres stop
自动启动:
"要立即启动postgresql并在登录时重新启动:"
brew services start postgresql
结果是pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start什么?
结果是pg_ctl -D /usr/local/var/postgres status什么?
server.log中是否有任何错误消息?
确保在pg_hba.conf中启用了tcp localhost连接:
# IPv4 local connections:
host all all 127.0.0.1/32 trust
Run Code Online (Sandbox Code Playgroud)
检查postgresql.conf中的listen_addresses和port:
egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#port = 5432 # (change requires restart)
Run Code Online (Sandbox Code Playgroud)
打扫干净
Postgres最有可能通过Homebrew,Fink,MacPorts或EnterpriseDB安装程序安装.
检查以下命令的输出以确定安装它的软件包管理器:
brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres
Run Code Online (Sandbox Code Playgroud)
小智 338
如果你想手动启动和停止postgresql(通过自制软件安装),最简单的方法是:
brew services start postgresql
Run Code Online (Sandbox Code Playgroud)
和
brew services stop postgresql
Run Code Online (Sandbox Code Playgroud)
小智 178
我几乎完全相同的问题,你引用initdb命令作为修复.这也是我的解决方案,但我没有看到有人在这里发布,所以对于那些正在寻找它的人:
initdb /usr/local/var/postgres -E utf8
Run Code Online (Sandbox Code Playgroud)
raf*_*ela 87
如果您的计算机突然重新启动
首先,您必须删除该文件/usr/local/var/postgres/postmaster.pid然后您可以使用许多其他提到的方法之一重新启动服务,具体取决于您的安装.
您可以通过查看Postgres的日志来验证这一点,看看可能会发生什么: tail -f /usr/local/var/postgres/server.log
pis*_*ruk 81
另一种方法是使用lunchy gem(launchctl的包装器):
brew install postgresql
initdb /usr/local/var/postgres -E utf8
gem install lunchy
Run Code Online (Sandbox Code Playgroud)
开始postgres:
lunchy start postgres
Run Code Online (Sandbox Code Playgroud)
停止postgres:
lunchy stop postgres
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅:" 如何使用Homebrew和Lunchy在Mac上安装PostgreSQL "
Ken*_*ial 70
这里我的2美分:我为postgres pg_ctl创建了一个别名并将其放在.bash_profile中(我的postgresql版本是9.2.4,数据库路径是/Library/PostgreSQL/9.2/data).
alias postgres.server="sudo -u postgres pg_ctl -D /Library/PostgreSQL/9.2/data"
Run Code Online (Sandbox Code Playgroud)
推出新终端.
然后?您可以使用以下命令启动/停止postgresql服务器:
postgres.server start
postgres.server stop
Run Code Online (Sandbox Code Playgroud)
Mar*_*son 33
到目前为止,启动/停止/重新启动postgres 的最brew简洁方法是简单地卸载和/或加载安装附带的launchd配置文件:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Run Code Online (Sandbox Code Playgroud)
第一行将停止postgres,第二行将启动它.无需指定任何数据目录等,因为一切都在该文件中.
Tod*_*odd 27
要启动postgresql服务器:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Run Code Online (Sandbox Code Playgroud)
结束postgresql服务器:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
Run Code Online (Sandbox Code Playgroud)
您还可以通过CLI创建别名以简化:
alias pg-start='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'
alias pg-stop='pg_ctl -D /usr/local/var/postgres stop -s -m fast'
Run Code Online (Sandbox Code Playgroud)
有了这些,你可以输入"pg-start"来启动Postgres,然后输入"pg-stop"来关闭它.
zee*_*zee 14
# Remove old database files (if there was any)
$ rm -rf /usr/local/var/postgres
# Install the binary
$ brew install postgresql
# init it
$ initdb /usr/local/var/postgres
# Start the PostgreSQL server
$ postgres -D /usr/local/var/postgres
# Create your database
$ createdb mydb
# Access the database
$ psql mydb
psql (9.0.1)
Type "help" for help.
Run Code Online (Sandbox Code Playgroud)
use*_*921 14
有时这只是您缺少的版本,而您不必要地摸不着头脑。
\n如果您使用的是特定版本的 PostgreSQL,例如 PostgreSQL\xc2\xa010,则只需执行以下操作
\nbrew services start postgresql@10\n\nbrew services stop postgresql@10\nRun Code Online (Sandbox Code Playgroud)\n如果您已从Homebrew安装了特定版本的普通brew services start postgresql版本,则在没有版本的情况下,普通版本将无法工作。
小智 10
如果您使用 Homebrew 安装,则以下命令应该足够了。
brew services restart postgresql
Run Code Online (Sandbox Code Playgroud)
这有时可能不起作用。在这种情况下,以下两个命令肯定可以工作:
rm /usr/local/var/postgres/postmaster.pid
pg_ctl -D /usr/local/var/postgres start
Run Code Online (Sandbox Code Playgroud)
当您使用自制软件安装postgresql时:
brew install postgres
Run Code Online (Sandbox Code Playgroud)
在输出结束时,您将看到此方法启动服务器:
To have launchd start postgresql at login:
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Then to load postgresql now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Or, if you don't want/need launchctl, you can just run:
postgres -D /usr/local/var/postgres
Run Code Online (Sandbox Code Playgroud)
我认为这是最好的方法.
为方便起见,您可以在.profile中添加别名.
对于快速的一次性测试数据库,您可以在前台运行服务器.
在新目录中初始化一个新的postgres数据库
mkdir db
initdb db -E utf8
createdb public
Run Code Online (Sandbox Code Playgroud)
在前台启动服务器(ctrl-C停止服务器)
postgres -d db
Run Code Online (Sandbox Code Playgroud)
在另一个shell会话中,连接到服务器
psql -d public
Run Code Online (Sandbox Code Playgroud)
我有同样的问题,并从第一篇文章执行所有更新.但检查日志文件后:
/usr/local/var/postgres/server.log
Run Code Online (Sandbox Code Playgroud)
我看到了真正的原因:
FATAL: data directory "/usr/local/var/postgres" has group or world access
DETAIL: Permissions should be u=rwx (0700).
Run Code Online (Sandbox Code Playgroud)
在此目录上更改权限后
chmod 0700 /usr/local/var/postgres
Run Code Online (Sandbox Code Playgroud)
postgres服务器已启动.
每次检查日志文件.
小智 6
如果您没有使用Homebrew直接从 Mac 软件包安装它,那么当使用所有默认位置、变量等时,这对我来说适用于 PostgreSQL 12。
$ sudo su postgres
bash-3.2$ /Library/PostgreSQL/12/bin/pg_ctl -D /Library/PostgreSQL/12/data/ stop
Run Code Online (Sandbox Code Playgroud)
PostgreSQL 集成在Server.app中,可通过Mac\xc2\xa0OS\xc2\xa0X\xc2\xa0v10.8 (Mountain Lion)中的App\xc2\xa0Store获取。这意味着它已经配置完毕,您只需启动它,然后创建用户和数据库。
\n提示:不要从定义 $PGDATA 等开始。按原样保留文件位置。
\n您将拥有以下文件:\n /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist
\n开始:
\nsudo serveradmin start postgres\nRun Code Online (Sandbox Code Playgroud)\n进程以参数开始:
\n/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL/Data -c Listen_addresses=127.0.0.1,::1 -c log_connections=on -c log_directory=/Library/Logs /PostgreSQL -c log_filename=PostgreSQL.log -c log_line_prefix=%t -c log_lock_waits=on -c log_statement=ddl -clogging_collector=on -c unix_socket_directory=/private/var/pgsql_socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
\n你可以sudo:
\nsudo -u _postgres psql template1\nRun Code Online (Sandbox Code Playgroud)\n或者连接:
\npsql -h localhost -U _postgres postgres\nRun Code Online (Sandbox Code Playgroud)\n您可以通过以下命令找到数据目录、版本、运行状态等
\nsudo serveradmin fullstatus postgres\nRun Code Online (Sandbox Code Playgroud)\n
小智 5
出于开发目的,最简单的方法之一是从官方网站安装 Postgres.app 。可以从应用程序文件夹启动/停止它或在终端中使用以下命令:
# Start
open -a Postgres
# Stop
killall Postgres
killall postgres
Run Code Online (Sandbox Code Playgroud)
小智 5
这个答案的变化:https : //stackoverflow.com/a/13103603/2394728
initdb `brew --prefix`/var/postgres/data -E utf8`` && pg_ctl -D /usr/local/var/postgres/data -l logfile start
Run Code Online (Sandbox Code Playgroud)
小智 5
这对我有用(macOS v10.13(High Sierra)):
sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data
Run Code Online (Sandbox Code Playgroud)
或者先
cd /Library/PostgreSQL/9.6/bin/
Run Code Online (Sandbox Code Playgroud)
brew install postgresql,您可以使用“@”符号指定版本:brew install postgresql@14brew services start postgresql或特定版本brew services start postgresql@14brew services stop postgresql| 归档时间: |
|
| 查看次数: |
852389 次 |
| 最近记录: |