openSUSE 安装 PostgreSQL
环境:openSUSE Leap 42.2 自从 Ubuntu 弃 Unity 转 Gnome,我也就弃 Ubuntu 而转 openSUSE 了。 还在用 Ubuntu 的同学,可以参考 阮一峰 写的 PostgreSQL 新手入门。 安装安装客户端: $ sudo zypper in postgresql 安装服务器: $ sudo zypper in postgresql-server 交互式客户端程序是 安装完后,Linux 多了一个用户 $ sudo passwd postgres <提示输入新的密码> 下面切换到用户 (adam@linux) $ su postgres <输入刚刚设置的密码> (postgres@linux) $ initdb -D /var/lib/pgsql/data 数据库簇是放置数据库的位置, 启动服务必须先切换至 (adam@linux) $ su postgres 通过 (postgres@linux) $ pg_ctl start -D /var/lib/pgsql/data 正在启动服务器进程 2017-06-25 10:11:14 CST 日志: 日志输出重定向到日志收集进程 2017-06-25 10:11:14 CST 提示: 后续的日志输出将出现在目录 "pg_log" 中
看一下进程状态: $ ps aux | grep postgres postgres 5765 0.0 0.2 213160 20404 pts/0 S 10:11 0:00 /usr/lib/postgresql94/bin/postgres -D /var/lib/pgsql/data postgres 5768 0.0 0.0 68308 3112 ? Ss 10:11 0:00 postgres: logger process postgres 5770 0.0 0.0 213160 3628 ? Ss 10:11 0:00 postgres: checkpointer process postgres 5771 0.0 0.0 213160 5684 ? Ss 10:11 0:00 postgres: writer process postgres 5772 0.0 0.0 213160 3628 ? Ss 10:11 0:00 postgres: wal writer process postgres 5773 0.0 0.0 213560 6800 ? Ss 10:11 0:00 postgres: autovacuum launcher process postgres 5774 0.0 0.0 68304 4216 ? Ss 10:11 0:00 postgres: stats collector process 通过 (postgres@linux) $ pg_ctl status -D /var/lib/pgsql/data pg_ctl: 正在运行服务器进程(PID: 5765) /usr/lib/postgresql94/bin/postgres "-D" "/var/lib/pgsql/data" 注意非 (adam@linux) $ pg_ctl status -D /var/lib/pgsql/data pg_ctl: 无法访问目录 "/var/lib/pgsql/data": 权限不够 为了避免每次都用 # PostgreSQL database cluster directory. export PGDATA=/var/lib/pgsql/data 下次再用 (postgres@linux) $ pg_ctl status pg_ctl: 正在运行服务器进程(PID: 5765) /usr/lib/postgresql94/bin/postgres "-D" "/var/lib/pgsql/data" 角色(Role)回到 Linux 普通用户(比如 (adam@linux) $ psql template1 psql: 致命错误: 角色 "adam" 不存在 提示说角色不存在。 切回 (postgres@linux) $ psql template1 psql (9.4.9) 输入 "help" 来获取帮助信息. template1=# SELECT rolname FROM pg_roles; rolname ---------- postgres (1 行记录) 可见目前只有一个角色 postgres。 template1=# CREATE ROLE adam; CREATE ROLE template1=# SELECT rolname FROM pg_roles; rolname ---------- postgres adam (2 行记录) 再次尝试以用户 (adam@linux) $ psql template1 psql: 致命错误: 不允许角色"adam" 进行登录 看来刚刚创建的角色 template1=# DROP ROLE adam; DROP ROLE template1=# CREATE ROLE adam WITH LOGIN CREATEDB PASSWORD '654321'; 随后,即可以角色 (adam@linux) $ psql -l 资料库列表 名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限 -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | template0 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 行记录)
(adam@linux) $ psql -l -Uadam 注意,数据库角色名不必和 Linux 用户名相同。 通过 (adam@linux) $ psql -l -Upostgres 创建数据库(adam@linux) $ createdb mydb (adam@linux) $ psql -l 名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限 -----------+----------+----------+-------------+-------------+----------------------- mydb | adam | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | ... 删除数据库: (adam@linux) $ dropdb mydb 使用数据库: (adam@linux) $ psql mydb 当然, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |