我正在设置我的PostgreSQL 9.1。我无法对PostgreSQL做任何事情:不能createdb
,不能createuser
;所有操作都返回错误消息
Fatal: role h9uest does not exist
h9uest
是我的帐户名,我sudo apt-get install
PostgreSQL 9.1在此帐户下
root
帐户仍然存在类似的错误。
答案 0 :(得分:662)
使用操作系统用户 postgres
创建数据库 - 只要您尚未设置具有相应权限的数据库角色您的操作系统用户名相同(在您的情况下为h9uest
):
sudo -u postgres -i
然后再试一次。完成操作系统用户exit
后输入postgres
。
或使用createuser
执行postgres
作为sudo
的单个命令,例如另一个答案中的demonstrated by drees。
重点是使用与同名数据库角色匹配的操作系统用户通过ident
authentication授予访问权限。 postgres
是初始化数据库集群的默认操作系统用户。 The manual:
为了引导数据库系统,一个刚刚初始化的 系统始终包含一个预定义角色。这个角色永远是一个 “超级用户”,默认情况下(除非在运行
initdb
时更改) 将与初始化的操作系统用户具有相同的名称 数据库集群。通常,此角色将命名为postgres
。 为了创建更多角色,您首先必须以此身份进行连接 最初的角色。
我听说过使用非标准用户名或操作系统用户不存在的奇怪设置。你需要在那里调整你的策略。
答案 1 :(得分:253)
在尝试了许多其他人的解决方案后,但没有成功,这个答案终于帮助了我。
https://stackoverflow.com/a/16974197/2433309
简而言之,正在运行
sudo -u postgres createuser owning_user
创建一个名为owning_user的角色(在本例中为h9uest)。之后,您可以在您设置的任何帐户名下从终端运行rake db:create
,而无需进入postgres环境。
答案 2 :(得分:115)
sudo su - postgres
psql template1
在pgsql上创建角色,权限为“超级用户”
CREATE ROLE username superuser;
eg. CREATE ROLE demo superuser;
然后创建用户
CREATE USER username;
eg. CREATE USER demo;
为用户分配权限
GRANT ROOT TO username;
然后启用该用户的登录,这样您就可以从普通psql template1
终端运行例如:$
:
ALTER ROLE username WITH LOGIN;
答案 3 :(得分:74)
使用apt-get
安装postgres不会创建用户角色或数据库。
为您的个人用户帐户创建超级用户角色和数据库:
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
答案 4 :(得分:64)
这对我有用:
psql -h localhost -U postgres
答案 5 :(得分:9)
工作方法,
vi /etc/postgresql/9.3/main/pg_hba.conf
local all postgres peer
此处将同行更改为信任 重新启动,sudo service postgresql restart
现在尝试,psql -U postgres
答案 6 :(得分:6)
我在macOS上安装它并且必须:
cd /Applications/Postgres.app/Contents/Versions/9.5/bin
createuser -U postgres -s YOURUSERNAME
createdb YOURUSERNAME
以下是来源:https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641
答案 7 :(得分:5)
在本地用户提示符中,不是root用户提示符,键入
sudo -u postgres createuser <local username>
然后输入本地用户的密码。
然后输入上一个生成&#34; role&#39; username&#39;不存在。&#34;
以上步骤解决了我的问题。 如果没有,请发送以上步骤的终端消息。
答案 8 :(得分:2)
对于版本 Postgres 9.5 ,请使用以下命令:
psql -h localhost -U postgres
希望这会有所帮助。
答案 9 :(得分:1)
按照以下步骤进行操作:
msfconsole
db_connect user:pass@host:port.../database
抱歉,我不记得了,但就像这样,然后将用户和密码以及主机和数据库替换为安置中database.yml
中包含的信息:/usr/share/metasploit-framework/config
msfconsole: msf>db_status
来查看它是否已连接。答案 10 :(得分:1)
手动创建数据库集群已解决了我的情况。
由于某种原因,当我安装postgres时,未创建“初始数据库”。执行initdb
对我有用。
the PostgreSQL Wiki - First steps中提供了此解决方案:
initdb
通常将postgres安装到您的操作系统会创建一个“初始DB”,并启动postgres服务器守护程序运行。如果没有,那么您需要run initdb
答案 11 :(得分:0)
对于 Windows 用户:psql -U postgres
您应该看到PostgreSQL的命令行界面:postgres=#
答案 12 :(得分:0)
psql postgres
postgres=# CREATE ROLE username superuser;
postgres=# ALTER ROLE username WITH LOGIN;
答案 13 :(得分:0)
使用loadBoundariesFromGeoJson(map){
let geo_json_url ='https://raw.githubusercontent.com/matej-pavla/Google- Maps-Examples/master/BoundariesExample/geojsons/us.states.geo.json';
this.initializeDataLayer(map);
this.http.get(geo_json_url).subscribe((data:any)=>{
if(data.type == "FeatureCollection"){ //we have a collection of boundaries in geojson format
if(data.features){
for(let i = 0; i < data.features.length; i++){
let boundary_id = i + 1;
let new_boundary : any ={};
if(!data.features[i].properties) data.features[i].properties = {};
data.features[i].properties.boundary_id = boundary_id; //we will use this id to identify boundary later when clicking on it
data.features[i].properties.title = 'Hello';
data.features[i].properties.icon = 'http://maps.google.com/mapfiles/ms/micons/blue.png';
this.data_layer.addGeoJson(data.features[i], {idPropertyName: 'boundary_id'});
new_boundary.feature = this.data_layer.getFeatureById(boundary_id);
if(data.features[i].properties.name) new_boundary.name = data.features[i].properties.name;
if(data.features[i].properties.NAME) new_boundary.name = data.features[i].properties.NAME;
this.my_boundaries[boundary_id] = new_boundary;
if(this.my_boundaries[boundary_id]){ //just an example, that you can change styles of individual boundary
// console.log("Data layers:",this.data_layer);
this.data_layer.overrideStyle(this.my_boundaries[boundary_id].feature, {
fillColor: 'black',
fillOpacity: 0.9,
strokeColor:'white',
zIndex:-1000
});
}
}
}
}
})
}
initializeDataLayer(map){
if(this.data_layer){
this.data_layer.forEach(function(feature) {
this.data_layer.remove(feature);
});
this.data_layer = null;
}
this.data_layer = new google.maps.Data({map: map}); //initialize data layer which contains the boundaries. It's possible to have multiple data layers on one map
this.data_layer.setStyle({ //using set style we can set styles for all boundaries at once
fillColor: 'white',
strokeWeight: 1,
fillOpacity: 0.1
});
}
标志转储和还原
例如
转储-Sub FilterDate()
Dim N As Long, r As Range
With Sheets("Dates")
N = .Cells(Rows.Count, "A").End(xlUp).Row
ReDim ary(1 To N)
For i = 1 To N
ary(i) = .Cells(i, 1)
Next i
End With
Range("A1:F4124").AutoFilter
Sheets("Tableau_TxtDateCahiersGI").Range("$A$1:$F$4124").AutoFilter Field:=2, Criteria1:=ary, Operator:=xlFilterValues
End Sub
还原---no-owner --no-privileges
答案 14 :(得分:0)
将端口从5432更改为5433如此简单,对我来说就是成功。
答案 15 :(得分:0)
按照以下步骤让 postgres 工作。
答案 16 :(得分:0)
我使用 docker-compose 进行了健康检查。
healthcheck:
test: ['CMD-SHELL', 'pg_isready']
interval: 5s
timeout: 5s
retries: 5
如果您也有更改用户:
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres'] # <<<---
interval: 5s
timeout: 5s
retries: 5
答案 17 :(得分:-4)
卸载所有内容并保留Postgres.app:
brew cask uninstall postgres
brew uninstall postgres
brew cask install postgres
rm -rf /Applications/Postgres93.app/
# shutdown any postgres instance
# open postgres.app -> "Initialize"
我想要PostgreSQL 9.6