老寨山人 发表于 2024-2-24 16:45:17

docker容器中登陆并操作postgresql的实现

这里的背景比较简单,因为区块链浏览器使用的是blockscout,blockscout的数据库选择的是postgresql,这些服务组件都是使用的docker容器来管理,今天进行区块链上交易查询的时候,发现数据存在部分问题,因此需要进入postgresql来排查

PostgreSQL


[*]PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。
[*]PostgreSQL 开发者把它念作 post-gress-Q-L。
[*]PostgreSQL 的 Slogan 是 “世界上最先进的开源关系型数据库”。

docker容器操作postgresql

多余的不讲了,我们直接来操作

docker容器操作


查看docker镜像

这里我们只需要关注容器id(CONTAINER ID)和容器名称(NAMES)即可,后面进入postgresql数据库会用到
docker ps

进入容器

这里我们以容器名称为db的为例
#通过容器名称进入镜像
docker exec -it db /bin/sh

#通过容器ID进入镜像
docker exec -it 0ad4d42cbc99 /bin/sh
登陆postgresql数据库

执行完毕上面的命令,我们就进入了postgresql的容器中
因为blockscout将数据库密码写入了环境变量中,因此使用下面的命令即可
psql -U blockscout具体解释如下:

[*]psql: 是 PostgreSQL 数据库的命令行客户端工具,用于执行 SQL 查询和管理数据库。
[*]-U blockscout: 是命令的参数部分,指定连接数据库时要使用的用户名。在这里,用户名是 blockscout。
这个命令表示正在使用 psql 命令行工具连接到 PostgreSQL 数据库,并以 blockscout用户的身份进行连接。连接成功后,可以执行 SQL 查询、管理数据库等操作。
登陆成功如下图

在正常情况下,如果要使用用户名和密码登录 PostgreSQL,可以使用以下格式的命令:
psql -U your_username -d your_database -h your_host -p your_port -W-W 选项用于指示系统提示输入密码

postgresql相关操作


列出所有的数据库

\l

\list可以看到有下面4个数据库


切换数据库

我们切换到 blockscout数据库,命令如下:
\c blockscout会看到提示,当前链接的数据库是blockscout,用户是blockscout


列出当前数据库下的数据表

\d如下图,可以看到所有的表


退出查看

记住在postgresql的操作中,所有的退出,都是轻轻点击一下q键即可
q
列出指定表的所有字段

这里以表address_names为例
\d address_names如下图,我们可以看到字段名称、类型、描述、是否为空等等


查看指定表的基本情况

这里还是以表address_names为例
\d+ address_names如下图


查询指定表内容

这里仍然以表address_names为例,我们只查询5条
select * from address_names limit 5;如下图,可以看出,查询语句和mysql没有什么区别


退出postgresql的登陆

\q这里单单一个q是无法退出的

退出postgresql容器

exit;如下图,成功退出了

到此这篇关于docker容器中登陆并操作postgresql的实现的文章就介绍到这了,更多相关docker登陆并操作postgresql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/server/3157423zf.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: docker容器中登陆并操作postgresql的实现