PostgreSQL命令行工具 - pgcli

简介

pgcli 是针对Postgresql的命令行工具,他的特色是对sql能够语法高亮显示,并且能对输入进行自动提示。(同时,针对MysqL也有一个类似的命令行工具mycli)。

网站:http://pgcli.com/

授权协议:BSD 3-clause license

开发语言:Python

支持系统:LinuxOS X, Windows理论上可以但尚未测试过。


安装试用

环境:centos 32bit.

数据库:Postgresql9.4

1.安装Postgresql

编译安装或者安装包图形化安装均可。可参考:PostgreSQL在Linux下的源码编译安装

2.安装python

安装python。可参考:python开发环境搭建与连接PostgreSQL数据库

3.安装python-pip

首先试用yum安装python-pip,结果显示没有可用的包。

[root@localhost~]#yuminstallpython-pip
Loadedplugins:fastestmirror,refresh-packagekit,security
Loadingmirrorspeedsfromcachedhostfile
*base:mirrors.163.com
*extras:mirrors.cqu.edu.cn
*updates:mirrors.163.com
base|3.7kB00:00
extras|3.4kB00:00
updates|3.4kB00:00
updates/primary_db|3.1MB00:04
SettingupInstallProcess
nopackagepython-pipavailable.
Error:nothingtodo

然后通过制定具体地址来安装,安装成功:

[root@localhost~]#curl"https://bootstrap.pypa.io/get-pip.py"-o"get-pip.py"
%Total%received%XferdAverageSpeedTimeTimeTimeCurrent
DloadUploadTotalSpentLeftSpeed
1001379k1001379k006736100:00:200:00:20--:--:--2612k
[root@localhost~]#pythonget-pip.py
Collectingpip
retrying(Retry(total=4,connect=None,read=None,redirect=None))afterconnectionbrokenby'ProtocolError('Connectionaborted.',gaierror(-2,'NameorservicenotkNown'))':/simple/pip/
/tmp/tmpEAjwcs/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90:InsecurePlatformWarning:AtrueSSLContextobjectisnotavailable.Thispreventsurllib3fromconfiguringSSLappropriatelyandmaycausecertainSSLconnectionstofail.Formore@R_389_4045@ion,seehttps://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
Downloadingpip-7.1.2-py2.py3-none-any.whl(1.1MB)
100%|████████████████████████████████|1.1MB209kB/s
Collectingsetuptools
Downloadingsetuptools-19.1.1-py2.py3-none-any.whl(463kB)
100%|████████████████████████████████|466kB617kB/s
Collectingwheel
Downloadingwheel-0.26.0-py2.py3-none-any.whl(63kB)
100%|████████████████████████████████|65kB1.4MB/s
Collectingargparse(fromwheel)
Downloadingargparse-1.4.0-py2.py3-none-any.whl
Installingcollectedpackages:pip,setuptools,argparse,wheel
Successfullyinstalledargparse-1.4.0pip-7.1.2setuptools-19.1.1wheel-0.26.0

4.安装pgcli

[root@localhost~]#pipinstallpgcli

报错:

Error:pg_configexecutablenotfound.
Pleaseaddthedirectorycontainingpg_configtothePATH
orspecifythefullexecutablepathwiththeoption:
pythonsetup.pybuild_ext--pg-config/path/to/pg_configbuild...
orwiththepg_configoptionin'setup.cfg'.
----------------------------------------
Commandpythonsetup.pyegg_infoFailedwitherrorcode1in/tmp/pip-build/psycopg2

解决方法:pg_config在Postgresql的bin目录下, 所以要在环境变量PATH中配置bin路径。

[root@localhost~]#exportPATH=$PATH:/opt/Postgresql/9.4/bin/

重新执行安装即可:

[root@localhost~]#pipinstallpgcli

5.运行pgcli并连接Postgresql执行查询

[root@localhost~]#pgcli--help
Usage:pgcli[OPTIONS][DATABASE][USERNAME]
Options:
-h,--hostTEXTHostaddressofthepostgresdatabase.
-p,--portINTEGERPortnumberatwhichthepostgresinstanceislistening.
-U,--userTEXTUsernametoconnecttothepostgresdatabase.
-W,--passwordForcepasswordprompt.
-w,--no-passwordNeverpromptforpassword.
-v,--versionVersionofpgcli.
-d,--dbnameTEXTdatabasenametoconnectto.
--pgclircTEXTLocationofpgclircfile.
--helpShowthismessageandexit.
[root@localhost~]#pgcli-h-p5433-Upostgres
Couldnottranslatehostname"-p"toaddress:NameorservicenotkNown
[root@localhost~]#pgcli-h127.0.0.1-p5433-Upostgres-dpostgres
Password:
Version:0.20.1
Chat:https://gitter.im/dbcli/pgcli
Mail:https://groups.google.com/forum/#!forum/pgcli
Home:http://pgcli.com
postgres>
Time:0.000s
postgres>selectcount(*)frompublic.a0;
+---------+
|count|
|---------|
|0|
+---------+
SELECT1
Time:0.030s

图1.可以看到pgcli对sql语句有语法高亮显示

图2.可以看到pgcli对输入有自动提示功能(在简单的测试环境下反应速度很理想的,其他情况有待测试)。

备注:本文仅限于测试试用,需要结合其他测试工具进一步测试。不适用于生产环境。

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...