mac安装postgresql

说正事,先安装postgresql:

brew install postgresql
查看已安装的pg版本:

pg_ctl -V
安装成功之后,安装路径为:

/usr/local/var/postgres
初始化数据库:

initdb /usr/local/var/postgres
这里要特别注意的是,搜索到的很多方法都是:
initdb /usr/local/var/postgres -E utf8
但是这样初始化可以,但是最后启动pg的时候总是启动不起来,失败了无数次之后才知道真不能这么干,具体原因还不清楚。
手动启动数据库:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
查看数据库状态:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log status
停止:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log stop -s -m fast
查看数据库进程:
ps -ef |grep postgres 或 ps auxwww | grep postgres
创建一个数据库用户:
createuser username -P
创建数据库:
createdb dbname -O username -E UTF8 -e
这样就建好了,本地就可以用pgAdmin访问了。
从其他数据库导入导出表结构和数据以后再说。

远程导出表结构和数据:

 pg_dump -h 104.236.131.89 hold -U hold -p 5432 -f hold.dump
远程导出表结构,不带数据,因为数据量一般都很大,导出超级慢,所有可以只导出表结构:
 pg_dump -s -h 104.236.131.89 hold -U hold -p 5432 -f hold.dump
导入本地数据库:
psql -h 0.0.0.0 hold -U hold -p 5432 -f hold.dump
特别注意:如果你用上述的命令启动失败,就去 /usr/local/var/postgres/server.log 查看错误日志,比如我启动报错:

LOG:  could not translate host name "localhost", service "5432" to address: nodename nor servname provided, or not known
WARNING:  could not create listen socket for "localhost"
FATAL:  could not create any TCP/IP sockets
看错误是localhost的问题,无法翻译主机名"localhost",到配置文件 /usr/local/var/postgres/postgresql.conf 里修改一下配置文件:

listen_addresses = '0.0.0.0'        # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
#port = 5432                # (change requires restart)
把listen_addresses由"localhost"改为"0.0.0.0"即可。
重新用启动命令启动一下数据库就OK。
 

在 mac 下,可以利用 homebrew 直接安装 PostgreSQL:

1

brew install postgresql -v

稍等片刻,PostgreSQL 就安装完成。接下来就是初始数据库,在终端执行一下命令,初始配置 PostgreSQL:

1

initdb /usr/local/var/postgres -E utf8

上面指定 "/usr/local/var/postgres" 为 PostgreSQL 的配置数据存放目录,并且设置数据库数据编码是 utf8,更多配置信息可以 "initdb --help" 查看。

设成开机启动 PostgreSQL:

1

2

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

启动 PostgreSQL:

1

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

关闭 PostgreSQL:

1

pg_ctl -D /usr/local/var/postgres stop -s -m fast

创建一个 PostgreSQL 用户

1

2

3

createuser username -P

#Enter password for new role:

#Enter it again:

上面的 username 是用户名,回车输入 2 次用户密码后即用户创建完成。更多用户创建信息可以 "createuser --help" 查看。

创建数据库

1

createdb dbname -O username -E UTF8 -e

上面创建了一个名为 dbname 的数据库,并指定 username 为改数据库的拥有者(owner),数据库的编码(encoding)是 UTF8,参数 "-e" 是指把数据库执行操作的命令显示出来。

更多数据库创建信息可以 "createdb --help" 查看。

连接数据库

1

psql -U username -d dbname -h 127.0.0.1

PostgreSQL 数据库操作

显示已创建的数据库:

1

\l  

在不连接进 PostgreSQL 数据库的情况下,也可以在终端上查看显示已创建的列表:

1

psql -l

连接数据库

1

\c dbname

显示数据库表

1

\d  

创建一个名为 test 的表

1

CREATE TABLE test(id int, text VARCHAR(50));

插入一条记录

1

INSERT INTO test(id, text) VALUES(1, 'sdfsfsfsdfsdfdf');

查询记录

1

SELECT FROM test WHERE id = 1;

更新记录

1

UPDATE test SET text = 'aaaaaaaaaaaaa' WHERE id = 1;

删除指定的记录

1

DELETE FROM test WHERE id = 1;

删除表

1

DROP TABLE test;

删除数据库

1

DROP DATABASE dbname;

或者利用 dropdb 指令,在终端上删除数据库

1

dropdb -U user dbname

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值