Enviado em 23/09/2017 - 00:28h
Olá, bom dia/tarde/noite, eu sempre usei Windows/Ubuntu e resolvi testar o Fedora 26 (acho que é a ultima versão). Faço curso de Ciência da Computação e uso o banco de dados postgresql e estou desenvolvendo aplicação em Java. Acontece que toda vez que vou acessar o banco pela minha aplicação, não importando o usuário que eu acesse, dá erro de autenticação do tipo 'ident'. Já fiz os comandos
Muita coisa que vi na internet me mandava alterar o arquivo pg_hba.conf, mas eu não achei ele nos meus diretórios, somente um pg_hba.conf.sample, que ao parecer tinha o mesmo conteúdo, mas sempre tinha que procurar essa linha
su postgres
psql
\password postgres
digitei nova senha, eu consigo me logar pelo postgres tanto no terminal quanto no pgadmin 3 e 4.psql
\password postgres
Muita coisa que vi na internet me mandava alterar o arquivo pg_hba.conf, mas eu não achei ele nos meus diretórios, somente um pg_hba.conf.sample, que ao parecer tinha o mesmo conteúdo, mas sempre tinha que procurar essa linha
# Database administrative login by UNIX sockets
local all postgres ident sameuser
e eu nunca tenho ela, o máximo que tenho é:local all postgres ident sameuser
@authcomment@
# TYPE DATABASE USER ADDRESS METHOD
@remove-line-for-nolocal@# "local" is for Unix domain socket connections only
@remove-line-for-nolocal@local all all @authmethodlocal@
# IPv4 local connections:
host all all 127.0.0.1/32 @authmethodhost@
# IPv6 local connections:
host all all ::1/128 @authmethodhost@
# Allow replication connections from localhost, by a user with the
# replication privilege.
@remove-line-for-nolocal@#local replication @default_username@ @authmethodlocal@
#host replication @default_username@ 127.0.0.1/32 @authmethodhost@
#host replication @default_username@ ::1/128 @authmethodhost@
Já desinstalei o postgres, e o voltei a instalar e dar o comando# TYPE DATABASE USER ADDRESS METHOD
@remove-line-for-nolocal@# "local" is for Unix domain socket connections only
@remove-line-for-nolocal@local all all @authmethodlocal@
# IPv4 local connections:
host all all 127.0.0.1/32 @authmethodhost@
# IPv6 local connections:
host all all ::1/128 @authmethodhost@
# Allow replication connections from localhost, by a user with the
# replication privilege.
@remove-line-for-nolocal@#local replication @default_username@ @authmethodlocal@
#host replication @default_username@ 127.0.0.1/32 @authmethodhost@
#host replication @default_username@ ::1/128 @authmethodhost@
sudo postgres initdb
para criar o arquivo pg_hba, mas aparece esse erroWARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
* Initializing database in '/var/lib/pgsql/data'
ERROR: Data directory /var/lib/pgsql/data is not empty!
ERROR: Initializing database failed, possibly see /var/lib/pgsql/initdb_postgresql.log
Caso seja necessário, estou fazendo o acesso ao postgresql na aplicação desta maneira. E sim, eu tenho o driver JDBC vinculado ao meu código:WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
* Initializing database in '/var/lib/pgsql/data'
ERROR: Data directory /var/lib/pgsql/data is not empty!
ERROR: Initializing database failed, possibly see /var/lib/pgsql/initdb_postgresql.log
//de parametros eu uso conectar("jdbc:postgresql://localhost:5432/", "NomeDaDataBase", "user", "senha");
private static boolean conectar(String local,String banco,String usuario,String senha)
{
boolean conectado=false;
try
{
String url = local+banco; //"jdbc:postgresql://localhost/"+banco;
connect = DriverManager.getConnection(url, usuario,senha);
con = new Conexao(connect, "");
conectado=true;
}
catch ( SQLException sqlex )
{
erro="Impossivel conectar com a base de dados: " + sqlex.toString();
}
catch ( Exception ex )
{
erro="Outro erro: " + ex.toString();
}
return conectado;
}