我是在自己电脑上实验的,系统为 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 ,密码是上一步修改的密码。保存密码可以勾选,为了方便。
点击确定,如果没有错误,主窗口就会显示数据库信息:
更进一步
官方文档非常详细,不懂 SQL 也能在此入门。
pgAdmin 文档可以了解如何通过 GUI 设计和管理数据库,比直接使用 SQL 方便一些。
发表回复