Press "Enter" to skip to content

Linux yum安装PostgreSQL-10.3以及常见操作

主机环境:
[root@test ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
安装版本:PostgreSQL-10.3
PostgreSQL官方文档:
https://www.postgresql.org/docs/10/static/
安装步骤:
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat10-10-2.noarch.rpm
//更多下载链接了参考:https://www.postgresql.org/download/
yum install postgresql10
yum install postgresql10-server
/usr/pgsql-10/bin/postgresql-10-setup initdb //初始化数据库,yum安装默认路径为/var/lib/pgsql
systemctl enable postgresql-10
systemctl start postgresql-10
安装完成后,操作系统会自动创建一个postgres用户用来管理数据库,为其初始化密码:
passwd postgres(这步一定要做,后面的操作基本上都是在postgres用户下)
修改PostgresSQL数据库配置实现远程访问:
vi /var/lib/pgsql/10/data/postgresql.conf
将listen_addresses前的#去掉,并将listen_addresses = 'localhost' 改成 listen_addresses = '*'
修改客户端认证配置文件pg_hba.conf,将需要远程访问数据库的IP地址或地址段加入该文件:
vi /var/lib/pgsql/10/data//pg_hba.conf
将IPv4区下的127.0.0.1/32修改为0.0.0.0/0;将ident修改为md5.
重启服务以使设置生效:
systemctl restart postgresql-10

常见操作:
\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息
创建数据库:/usr/pgsql-10/bin/createdb testdb
新建数据库用户:su - postgres(psql命令是在postgres用户下,就像sqlplus是在oracle用户下)
/usr/pgsql-10/bin/psql
postgres=# CREATE USER test WITH PASSWORD 'testdb';
连接数据:/usr/pgsql-10/bin/psql -h 127.0.0.1 -U test testdb -p 5432 -W
说明:-h表示主机,-p表示端口,-U表示用户,-W表示密码.
删除数据库:dropdb -h 127.0.0.1 -p 5432 -U postgres testdb -W
创建数据表:CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
postgres=# \d
List of relations
Schema | Name | Type | Owner
--------+----------+-------+----------
public | user_tbl | table | postgres
(1 row)
插入数据:INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2018-05-04');
postgres=# select * from user_tbl;
name | signup_date
------+-------------
张 | 2018-05-04
张三 | 2018-05-04
(2 rows)
查看表数据:SELECT * FROM user_tbl;
删除数据表:drop table user_tbl;
更新数据:UPDATE user_tbl set name = '李四' WHERE name = '张三';
postgres=# select * from user_tbl;
name | signup_date
------+-------------
张 | 2018-05-04
李四 | 2018-05-04
(2 rows)
删除记录:DELETE FROM user_tbl WHERE name = '李四';
postgres=# select * from user_tbl;
name | signup_date
------+-------------
张 | 2018-05-04
(1 row)
添加一列:ALTER TABLE user_tbl ADD email VARCHAR(40);
postgres=# select * from user_tbl;
name | signup_date | email
------+-------------+-------
张 | 2018-05-04 |
(1 row)
更改列名:ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
postgres=# select * from user_tbl;
name | signup | email
------+------------+-------
张 | 2018-05-04 |
(1 row)
更改字段类型:ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
删除一列:ALTER TABLE user_tbl DROP COLUMN email;
postgres=# select * from user_tbl;
name | signup
------+------------
张 | 2018-05-04
(1 row)
更改表名:ALTER TABLE user_tbl RENAME TO test_tbl;
postgres=# \d
List of relations
Schema | Name | Type | Owner
--------+----------+-------+----------
public | test_tbl | table | postgres
(1 row)
备份数据库:pg_dump -U postgres testdb > d:/testdb.dmp
恢复数据库:psql -U postgres testdb < d:/testdb.dmp

3 Comments

  1. 九歌 九歌 五月 15, 2018

    φ(゜▽゜*)♪技术大佬请喝茶~

发表评论

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