NoteOn-postgresql

一开始踩到了一些坑,因此记录一下,方便日后复用。目前为止,本文都是在 Manjaro Linux 上测试通过的。

安装

通过 pamac-manager 或者 paman 之类的包管理器安装

然后登录数据库:

sudo su - postgres
initdb --locale en_US.UTF-8 -D '/var/lib/postgres/data'
pg_ctl -D /var/lib/postgres/data -l logfile start

然后执行下述命令登录管理界面:

psql postgres

如果出现类似下述内容,说明登录成功:

[postgres@pc-lab ~]$ psql postgres
psql (9.6.5)
Type "help" for help.

postgres=# 

然后给 postgres 设置登录密码:(据说不设置的话无法通过 TCP/IP 访问数据库。。。)

\password postgres
Enter new password: 
Enter it again:

排错

Linux

如果出现下述提示:

/bin/sh: logfile: Permission denied

你可能需要查看一下 /var/lib/postgres 的权限。如果不是 postgres:postgres,需要在 root 状态下执行:

chown -R postgres:postgres /var/lib/postgres

如果没有上述报错,能创建 logfile,但是执行 psql postgres 时出错,查看 logfile 有下述提示:

FATAL:  could not create lock file "/run/postgresql/.s.PGSQL.5432.lock": No such file or directory

这里的 /run/postgresql/.s.PGSQL.5432.locl 可能各人不同,有的系统上可能是 /var/run 开头。无论如何,这时候可以看看是否存在 /run/postgresql 这个目录。如果没有,请在 root 状态下创建该目录,并将该目录授权给 postgres。

Mac OS

若使用 Homebrew 安装,可参考

https://stackoverflow.com/a/27925369

https://stackoverflow.com/questions/21122598/postgres-user-does-not-exist

即运行下述两条命令来运行数据库:

/bin/rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

pg_ctl -D /usr/local/var/postgres -l logfile start

常用命令

\l  #查看已有数据库列表
CREATE DATABASE db_name # 创建一个数据库
\c db_name  #连接到某个数据库
SELECT current_user; # 查看当前用户

数据导入 -U 是 user,database 是数据库, table 是被导入的表

psql -U postgres -h 127.0.0.1 database table < entity.sql

    原文作者:苏尚君
    原文地址: https://www.jianshu.com/p/2b35bf5757ba
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞