尝试\i create_db.sqlpsql时会抛出错误:
psql:create_db.sql:123: ERROR: could not load library
"/usr/lib64/pgsql/plpgsql.so": /lib64/libc.so.6: version
`GLIBC_2.14' not found (required by /usr/lib64/pgsql/plpgsql.so)
Run Code Online (Sandbox Code Playgroud)
create_db.sql的第123行是文件的最后一行,位于函数定义的末尾:
$$ language plpgsql;
Run Code Online (Sandbox Code Playgroud)
东西的版本:
$ psql --version
psql (PostgreSQL) 9.2.7
$ /lib64/libc.so.6 --version
GNU C Library (GNU libc) stable release version 2.17, by Roland McGrath et al.
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by …Run Code Online (Sandbox Code Playgroud) 我正在玩Docker,我想Dockerize一个Postgres容器.
我正在关注官方示例,但我无法连接到使用psql运行的映像.
我用示例的内容创建了Dockerfile.我从Dockerfile构建了一个图像并为其指定了一个名称.然后我运行PostgreSQL服务器容器(在前台).
~/test » docker run --rm -P --name pg_test eg_postgresql
2014-10-10 06:12:43 UTC LOG: database system was interrupted; last known up at 2014-10-10 06:12:29 UTC
2014-10-10 06:12:43 UTC LOG: database system was not properly shut down; automatic recovery in progress
2014-10-10 06:12:43 UTC LOG: redo starts at 0/1782F68
2014-10-10 06:12:43 UTC LOG: record with zero length at 0/1782FA8
2014-10-10 06:12:43 UTC LOG: redo done at 0/1782F68
2014-10-10 06:12:43 UTC LOG: last completed transaction was at log …Run Code Online (Sandbox Code Playgroud) 我正在使用Postgres数据库和PostGIS以及PGAdmin.我有很多不同大小的.sql文件,如300MB,280MB等,可以插入到数据库中.什么是最好的方法,例如通过java代码或一些psql命令.我也是java和postgres数据库的新手.请给我一些建议.
第一个查询:
database=# select * from table limit 1;
...
|
(1 row)
(END)
Run Code Online (Sandbox Code Playgroud)
我想做第二个查询,但我不能.ctrl + Z从psql退出.我可以按什么才能退出结果查看?
假设我有两台主机服务器s1和s2.在这两个服务器中我都有一个名为n1的模式,现在我对s1的模式n1中的一些表进行了一些更改.我希望对服务器s2的模式n1进行相同的更改.我打算做的是使用pg_dump备份服务器s1的模式n1,并使用pg_restore在服务器s2中恢复.现在我的问题是,因为服务器s2中已经存在具有相同表集的相同模式n1.恢复过程会做什么?它会覆盖现有的表还是应该删除服务器s2的现有模式并使用服务器s1的转储来恢复它?
我想向name现有表 psql 中的列添加唯一约束
创建表(PostgreSQL):
class CreateRequests < ActiveRecord::Migration
def change
create_table :requests do |t|
t.integer :user_id
t.string :name
t.string :address
t.timestamps null: true
end
add_index :requests, :user_id
end
end
Run Code Online (Sandbox Code Playgroud)
所以我在模型中添加了验证唯一性
class Request < ModelBase
belongs_to :user
validates :user, presence: true
validates :name, uniqueness: true, allow_blank: true
...
Run Code Online (Sandbox Code Playgroud)
和这样的迁移:
def change
add_index :user_requests, :name, unique: true
end
Run Code Online (Sandbox Code Playgroud)
但我注意到在某些情况下,名称可以为空,我可以在条件:name为空/不为空的情况下添加索引吗?
编辑:是的,我希望那些空值保留在数据库中(我不需要修改过去的请求)。我认为我需要编辑迁移以更准确地了解数据库的实际状态。
当我尝试使用psql登录我的数据库时,执行以下操作:
psql dbname --username=qgis --password
>>(prompts for password, entered password)
psql: FATAL: permission denied for database "gisdatabase"
DETAIL: User does not have CONNECT privilege.
Run Code Online (Sandbox Code Playgroud)
我在Google上搜索了有关这个简单问题的信息,但没有找到任何人直接谈论此事.
我试过这样做:
psql dbname
>>ALTER ROLE qgis WITH CONNECT;
Run Code Online (Sandbox Code Playgroud)
但得到了这个错误:
ERROR: unrecognized role option "connect"
Run Code Online (Sandbox Code Playgroud)
再一次,我在这里,再问一个关于stackoverflow的问题.谢谢你们的时间
psql在使用setvs. \setvs. 之间工作时,我有时会感到困惑\pset.我觉得:
set用于连接到db的会话变量.例如SET ROLE dba;\set用于此psql会话的局部变量.例如\set time 'select current_timestamp'\pset用于此psql会话的psql设置.例如'\pset border 2'但是,我从来没有找到我认为对每个人都很好的解释.我的假设是否正确?
我正在使用PostgreSQL 9.4
是否可以为psql创建连接别名?
例如,而不是键入:
psql --host=pr-gis-db --username=peregrinius --port=5432
Run Code Online (Sandbox Code Playgroud)
我只是打字
psql pr-gis-db
Run Code Online (Sandbox Code Playgroud)
它连接预先配置的设置..也许提示输入密码而不是存储密码.
我在使用 PostgreSQL 时遇到问题。我最近在 ubuntu 20.04 中安装了这个版本(13+223.pgdg20.04+1)的 postgresql 软件包。
我正在尝试运行psql命令,但出现以下错误:
psql:错误:致命:角色“my_username”不存在
我尝试使用 创建新用户createuser me,但出现以下错误:
createuser:错误:无法连接到数据库 template1:致命:角色“my_username”不存在
我也尝试过强制使用 postgres 用户createuser me --username=postgres,但出现以下错误:
createuser:错误:无法连接到数据库 template1:致命:用户“postgres”的对等身份验证失败
如何解决这些问题以便在我的计算机上本地使用 PostgreSQL 而不会出现这些问题?
PD:我已经重新安装了 postgres,现在我在执行以下操作时遇到了不同的错误psql:
psql: 错误: 无法连接到服务器: 没有这样的文件或目录 服务器是否在本地运行并接受 Unix 域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?
psql ×10
postgresql ×9
amazon-ec2 ×1
connect ×1
createuser ×1
debian ×1
docker ×1
glibc ×1
libc ×1
linux ×1
login ×1
pg-dump ×1
pg-restore ×1
role ×1
shell ×1
ubuntu-20.04 ×1