Roh*_*nga 183 database linux postgresql configuration
我刚刚安装了postgresql,我在安装过程中指定了密码x.当我尝试createdb
并指定任何密码时,我收到消息:
createdb:无法连接到数据库postgres:FATAL:用户的密码验证失败
同样的createuser
.
我应该怎么开始?我可以将自己添加为数据库用户吗?
Man*_*nur 315
其他答案对我来说并不完全令人满意.这是在Xubuntu 12.04.1 LTS上对postgresql-9.1有效的方法.
使用用户postgres连接到默认数据库:
sudo -u postgres psql template1
设置用户postgres的密码,然后退出psql(Ctrl-D):
ALTER USER postgres加密密码'xxxxxxx';
编辑pg_hba.conf
文件:
sudo vim /etc/postgresql/9.1/main/pg_hba.conf
关于postgres的行改为"peer"到"md5":
本地所有 postgres
peermd5
重启数据库:
sudo /etc/init.d/postgresql restart
(在这里你可以检查它是否适用ls /etc/postgresql
.)
创建一个与您同名的用户(要找到它,您可以键入psql -U postgres
):
createuser -U postgres -d -e -E -l -P -r -s
whoami
这些选项告诉postgresql创建一个可以登录,创建数据库,创建新角色,是超级用户并且具有加密密码的用户.真正重要的是-P -E,因此要求您输入将被加密的密码,以及-d以便您可以执行此操作<my_name>
.
小心密码:它会首先询问您两次新密码(对于新用户),重复,然后再次发出postgres密码(步骤2中指定的密码).
再次,编辑createdb
文件(参见上面的步骤3),并在关于"所有"其他用户的行上将"peer"更改为"md5":
本地 所有
同行md5
重启(如步骤4),并检查您是否可以在没有-U postgres的情况下登录:
psql template1
请注意,如果您仅仅执行此操作pg_hba.conf
,它将失败,因为它将尝试将您连接到与您具有相同名称的默认数据库(即.psql
).template1是从头开始的管理数据库.
现在whoami
应该工作.
Oli*_*old 52
在Linux下,PostgresQL通常配置为允许root用户postgres
从shell(控制台或ssh)以postgres超级用户身份登录.
$ psql -U postgres
Run Code Online (Sandbox Code Playgroud)
然后你就像往常一样创建一个新的数据库:
CREATE ROLE myuser LOGIN password 'secret';
CREATE DATABASE mydatabase ENCODING 'UTF8' OWNER myuser;
Run Code Online (Sandbox Code Playgroud)
这应该没有触及pg_hba.conf
.如果你想通过网络使用一些GUI工具来做到这一点 - 那么你需要搞砸pg_hba.conf
.
Adm*_*ian 19
这是我的解决方案:
su root
su postgres
psql
Run Code Online (Sandbox Code Playgroud)
Eva*_*oll 16
您可以使用两种方法.两者都需要创建用户和数据库.
使用createuser和createdb,
$ sudo -u postgres createuser --superuser $USER
$ createdb mydatabase
$ psql -d mydatabase
Run Code Online (Sandbox Code Playgroud)使用SQL管理命令,并通过TCP连接密码
$ sudo -u postgres psql postgres
Run Code Online (Sandbox Code Playgroud)
然后,在psql shell中
CREATE ROLE myuser LOGIN PASSWORD 'mypass';
CREATE DATABASE mydatabase WITH OWNER = myuser;
Run Code Online (Sandbox Code Playgroud)
然后你可以登录,
$ psql -h localhost -d mydatabase -U myuser -p <port>
Run Code Online (Sandbox Code Playgroud)
如果您不知道端口,可以通过以postgres
用户身份运行以下命令来获取端口
SHOW port;
Run Code Online (Sandbox Code Playgroud)
要么,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
Run Code Online (Sandbox Code Playgroud)postgres
用户我建议不要修改postgres
用户.
postgres
.你应该有root来进行身份验证postgres
.postgres
PostgreSQL等效的SQL Server SA
,您必须具有对底层数据文件的写访问权.而且,这意味着无论如何你通常都会破坏混乱.Rob*_*ert 15
这对我来说是标准的Ubuntu 14.04 64位安装.
我按照说明进行了一些修改,我在http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html中找到了这些修改.
sudo apt-get install postgresql
sudo –u postgres psql postgres
\password postgres
\q
#Database administrative login by Unix domain socket
local all postgres peer
至:
#Database administrative login by Unix domain socket
local all postgres md5
sudo service postgresql restart
sudo –u postgres createdb mytestdb
psql –U postgres –W
\l
在 MacOS 中,我按照以下步骤使其工作。
首次安装后,获取系统的用户名。
$ cd ~
$ pwd
/Users/someuser
$ psql -d postgres -U someuser
Run Code Online (Sandbox Code Playgroud)
现在您已经登录系统,可以创建数据库了。
postgres=# create database mydb;
CREATE DATABASE
postgres=# create user myuser with encrypted password 'pass123';
CREATE ROLE
postgres=# grant all privileges on database mydb to myuser;
GRANT
Run Code Online (Sandbox Code Playgroud)