说正事,先安装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 |
|
稍等片刻,PostgreSQL 就安装完成。接下来就是初始数据库,在终端执行一下命令,初始配置 PostgreSQL:
1 |
|
上面指定 "/usr/local/var/postgres" 为 PostgreSQL 的配置数据存放目录,并且设置数据库数据编码是 utf8,更多配置信息可以 "initdb --help" 查看。
设成开机启动 PostgreSQL:
1 2 |
|
启动 PostgreSQL:
1 |
|
关闭 PostgreSQL:
1 |
|
创建一个 PostgreSQL 用户
1 2 3 |
|
上面的 username 是用户名,回车输入 2 次用户密码后即用户创建完成。更多用户创建信息可以 "createuser --help" 查看。
创建数据库
1 |
|
上面创建了一个名为 dbname 的数据库,并指定 username 为改数据库的拥有者(owner),数据库的编码(encoding)是 UTF8,参数 "-e" 是指把数据库执行操作的命令显示出来。
更多数据库创建信息可以 "createdb --help" 查看。
连接数据库
1 |
|
PostgreSQL 数据库操作
显示已创建的数据库:
1 |
|
在不连接进 PostgreSQL 数据库的情况下,也可以在终端上查看显示已创建的列表:
1 |
|
连接数据库
1 |
|
显示数据库表
1 |
|
创建一个名为 test 的表
1 |
|
插入一条记录
1 |
|
查询记录
1 |
|
更新记录
1 |
|
删除指定的记录
1 |
|
删除表
1 |
|
删除数据库
1 |
|
或者利用 dropdb 指令,在终端上删除数据库
1 |
|