欢迎光临散文网 会员登陆 & 注册

从零开始的PostgreSQL学习:命令行客户端

2021-11-18 22:09 作者:CSDN首席喷子  | 我要投稿

PostgreSQL(PG)是一个客户端/服务器结构的数据库,实际处理工作总是由客户端提交到服务器端完成的。

1.1  数据目录初始化

在PG安装完成后,所有的客户端实用工具都存储在/bin文件夹下。其中,initdb可以用于创建数据库数据目录,包括系统运行所必需的数据库对象以及配置文件:

initdb -D /directory/to/your/database

完成后,可在该目录下找到PG_hba.conf和postgresql.conf两个文件,分别提供访问控制和数据库行为配置。考虑到数据库的实际使用场景,使用Unix Socket进行连接的情况很少,因此不予考虑。若要启动SSL连接,需首先在数据目录下放置公钥文件server.crt和私钥server.key(可以是自签名证书),并在postgresql.conf中指定

tcpip_socket = true

ssl = true

两项。随后启动数据库:

PG_ctl -D /directory/to/your/database -l  /directory/to/your/database/logfile.txt start

退出时将start换为stop。

1.2  用户和数据库创建

createuser和createdb两个程序用于创建用户和数据库,创建的用户和数据库记录是全局的,而不是限于某个数据库目录,因此就算删除了数据库数据目录,也仍然需要再次重置用户和数据库。首先应创建用户:

createuser someuser -A -d -E –host=127.0.0.1 --port=5432 –password

-A表示不允许创建新用户,-d表示可以创建新的数据库,-E表示要求加密密码(非明文)。输入后,会提示要求输入密码。随后创建数据库:

createdb dbname someuser

此时创建一个名为dbname的数据库,其所有者是someuser。

1.3  命令行管理程序

psql用于实现数据管理。默认情况下,psql是使用Unix Socket的,考虑到这里使用TCP连接,最好在PG_hba.conf中设置访问权限:

hostssl dbname someuser 127.0.0.1 255.255.255.255 md5

当建立SSL连接时应当手动指定主机:

psql dbname someuser –host=123456

此时会要求输入密码。连接后如下所示:

图1  命令行客户端界面

输入\q退出客户端,\e进入编辑器模式(Linux下是vi,Windows下是记事本),在编辑器退出时执行编辑器保存在一个临时文件中的SQL。如果要执行外部SQL文件,则需要在psql命令行中指定:

psql  dbname username –host=127.0.0.1 -f /location/to/sql -o /location/to/output



从零开始的PostgreSQL学习:命令行客户端的评论 (共 条)

分享到微博请遵守国家法律