PostgreSQL 入门笔记 (openSUSE)

我是在自己电脑上实验的,系统为 openSUSE 13.2。一些设置对服务器来说并不安全,读者需要自行分辨。

安装

用 Zypper 或 YaST 安装以下必需软件包:

  • postgresql-server
  • postgresql-server

推荐安装 pgadmin3 ——一个 GUI 数据库管理工具。

根据你的编程语言,如果用 PHP,则需要安装 php5-pgsql;如果用 Java,则需要安装 postgresql-jdbc。

能阅读英文文档的同学可以安装 postgresql-docs ,在浏览器中输入以下链接就可以阅读 HTML 版本的文档:

file:///usr/share/doc/packages/postgresql93/html/index.html

注意,如果安装的是 9.4.x 版本,就要把 “postgresql93”换成“postgresql94”了。

启动

安装后,PostgreSQL 不会立即运行,需要手动启动。openSUSE 使用 systemd:

# 启动
sudo systemctl start postgresql

# 停止
sudo systemctl stop postgresql

# 重启
sudo systemctl restart postgresql

# 查看运行状态
sudo systemctl status postgresql

# 设置开机自动运行
sudo systemctl enable postgresql

# 禁用开机自动运行
sudo systemctl disable postgresq

初始用户和数据库集群 (Database Cluster)

openSUSE 打包后的 PostgreSQL 会在 /var/lib/pgsql/data 位置创建一个初始的 Database Cluster。(当然也可以在别处创建一个,但对学习来说就没有必要了)PostgreSQL 的数据库就存放在这里。此外,PostgreSQL 的配置文件也在这里,而不是 /etc/ 目录。

安装 PostgreSQL 之后,系统会产生一个 postgres 用户和 postgres 组。PostgreSQL 服务器进程和初始数据库文件的所有者都是这个用户。postgres 用户的初始密码我们就不得而知了,但是因为有 sudo 权限在手,我们可以不用密码切换到 postgres 用户,并更改它的密码:

# 切换到 postgres 用户
sudo su postgres

# 进入 pgsql 命令行
pgsql

# 用 pgsql 命令修改密码
\password postgres

# 退出
\q

然后,需要更改一下用户验证方式,否则无法通过用户名密码访问。打开 /var/lib/pgsql/data/pg_hba.conf,找到:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

将 Method 全部修改为 md5 :

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

PostgreSQL 支持多种验证方式,md5 就是密码验证的一种。原因参考 Stack Overflow 上的这个问题

重启 PostgreSQL:

sudo systemctl restart postgresql

使用 pgAdmin 连接

用命令行管理数据库是很头疼的,很多命令要记。大部分人都使用类似 pgAdmin 这样的 GUI 管理工具。

打开 pgAdmin ,点击左上角的连接按钮,打开连接窗口。填写基本信息。只填写第一标签页“属性”即可,名称随意,主机是 localhost,端口号默认 5432 不要改,服务留空(我也不知道是什么),维护数据默认 postgres 不要改,用户名称 postgres ,密码是上一步修改的密码。保存密码可以勾选,为了方便。

pgadmin-connect

点击确定,如果没有错误,主窗口就会显示数据库信息:

pgadmin-main-window

更进一步

官方文档非常详细,不懂 SQL 也能在此入门。

pgAdmin 文档可以了解如何通过 GUI 设计和管理数据库,比直接使用 SQL 方便一些。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.