Estoy ejecutando mi desarrollo en Ubuntu 11.10 y RubyMine
Aquí está mi configuración de desarrollo para database.yml: que RubyMine creó para mí
development:
adapter: postgresql
encoding: unicode
database: mydb_development
pool: 5
username: myuser
password:
cuando intento ejecutar la aplicación, aparece este error a continuación, parece que todavía no he creado un usuario de 'proyecto', pero, ¿cómo puedo crear un usuario y otorgarle una base de datos en postgres? Si este es el problema, entonces, ¿cuál es la herramienta recomendada para usar en Ubuntu para esta tarea? Si este no es el problema, entonces, por favor consejo.
Exiting
/home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `initialize': FATAL: Peer authentication failed for user "project" (PG::Error)
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `new'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `connect'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:303:in `new_connection'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:313:in `checkout_new_connection'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:237:in `block (2 levels) in checkout'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:232:in `loop'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:232:in `block in checkout'
from /home/sam/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:229:in `checkout'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:in `retrieve_connection'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in `retrieve_connection'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in `connection'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/model_schema.rb:308:in `clear_cache!'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/railtie.rb:91:in `block (2 levels) in <class:Railtie>'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:418:in `_run__757346023__prepare__404863399__callbacks'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:405:in `__run_callback'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:385:in `_run_prepare_callbacks'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:81:in `run_callbacks'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/actionpack-3.2.3/lib/action_dispatch/middleware/reloader.rb:74:in `prepare!'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/actionpack-3.2.3/lib/action_dispatch/middleware/reloader.rb:48:in `prepare!'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/application/finisher.rb:47:in `block in <module:Finisher>'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/initializable.rb:30:in `instance_exec'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/initializable.rb:30:in `run'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/initializable.rb:55:in `block in run_initializers'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/initializable.rb:54:in `each'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/initializable.rb:54:in `run_initializers'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/application.rb:136:in `initialize!'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /home/sam/RubymineProjects/project/config/environment.rb:5:in `<top (required)>'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `block in require'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:236:in `load_dependency'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require'
from /home/sam/RubymineProjects/project/config.ru:4:in `block in <main>'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
from /home/sam/RubymineProjects/project/config.ru:1:in `new'
from /home/sam/RubymineProjects/project/config.ru:1:in `<main>'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/server.rb:200:in `app'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/commands/server.rb:46:in `app'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/server.rb:252:in `start'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/commands/server.rb:70:in `start'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/commands.rb:55:in `block in <top (required)>'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/commands.rb:50:in `tap'
from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/commands.rb:50:in `<top (required)>'
from /home/sam/RubymineProjects/project/script/rails:6:in `require'
from /home/sam/RubymineProjects/project/script/rails:6:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'
Process finished with exit code 1
host: localhost
ypool: 5
faltaba en mi configuración. Después de agregarlos, el error desapareció.host: localhost
faltaba. después de agregar eso, todo funcionó. Esto está en Ubuntu 13.04Esta es la forma más infalible de hacer que su aplicación rails funcione con postgres en el entorno de desarrollo en Ubuntu 13.10.
1) Cree la aplicación de rieles con postgres YAML y gema 'pg' en el Gemfile:
2) Dale alguna funcionalidad CRUD. Si solo está viendo si postgres funciona, cree un andamio:
3) A partir de
rails 4.0.1
la-d postgresql
opción, se genera un YAML que no incluye un parámetro de host. Descubrí que necesitaba esto. Edite la sección de desarrollo y cree los siguientes parámetros:Tenga en cuenta que el
database
parámetro es para una base de datos que aún no sale, y lasusername
ypassword
son credenciales para un rol que tampoco existe. ¡Los crearemos más adelante!Así es como
config/database.yml
debe verse (sin vergüenza en copypasting: D):4) Inicie el shell postgres con este comando:
4a) Puede recibir este error si su usuario actual (como en el usuario de su computadora) no tiene una función de postgres de administración correspondiente.
Ahora solo instalé postgres una vez, así que puedo estar equivocado aquí, pero creo que postgres crea automáticamente una función de administración con las mismas credenciales que el usuario que instaló postgres.
4b) Entonces, esto significa que debe cambiar al usuario que instaló postgres para usar el comando psql e iniciar el shell:
Y luego corre
5) Sabrás que estás en el shell de postgres porque tu terminal se verá así:
6) Usando la sintaxis postgresql, creemos el usuario que especificamos en
config/database.yml
la sección de desarrollo :Ahora, hay algunas sutilezas aquí, así que repasemoslas.
Deberías ver esto en tu terminal:
Eso significa, "PAPEL CREADO", pero las alertas de postgres parecen adoptar las mismas convenciones imperativas de git hub.
7) Ahora, aún en el shell de postgres, necesitamos crear la base de datos con el nombre que configuramos en YAML. Haga que el usuario que creamos en el paso 6 sea su propietario:
Sabrá si tuvo éxito porque obtendrá el resultado:
8) Salga del shell de postgres:
9) Ahora el momento de la verdad:
Si obtienes esto:
Enhorabuena, postgres funciona perfectamente con tu aplicación.
9a) En mi máquina local, seguía recibiendo un error de permiso. No puedo recordarlo exactamente, pero fue un error en la línea de
Aunque aconsejaría pensar con mucho cuidado sobre la configuración recursiva de escritura privada en una máquina de producción, localmente, le di a toda mi aplicación privilegios de lectura, escritura y escritura como este:
9b) Sube un nivel de directorio:
9c) Establezca los permisos del directorio my_application y todos sus contenidos en 666:
9d) Y vuelva a ejecutar la migración:
Algunos consejos y trucos si te arruinas
Pruebe estos antes de reiniciar todos estos pasos:
¿El usuario de mynewusername no tiene privilegios para CRUD en la
my_app_development
base de datos? Descarte la base de datos y vuelva a crearla con mynewusername como propietario:1) Inicie el shell de postgres:
2) Descarte la
my_app_development
base de datos. ¡Ten cuidado! ¡Drop significa eliminar por completo!3) Recree otro
my_app_development
y haga que mynewusername sea el propietario:4) Salga de la cáscara:
¿El
mynewusername
usuario no puede iniciar sesión en la base de datos? ¿Crees que escribiste la contraseña incorrecta en el YAML y no puedes recordar la contraseña que ingresaste usando el shell de postgres? Simplemente modifique el rol con la contraseña de YAML:1) Abra su YAML y copie la contraseña en su portapapeles:
2) Inicie el shell postgres:
3) Actualizar
mynewusername
la contraseña. Pegue la contraseña y recuerde poner comillas simples a su alrededor:4) Salga de la cáscara:
¿Intenta conectarse a localhost a través de un visor de bases de datos como Dbeaver y no sabe cuál es la contraseña de su usuario de postgres? Cámbialo así:
1) Ejecutar
passwd
como superusuario:2) Ingrese la contraseña de su cuenta para
sudo
(nada que ver con postgres):3) Crea la nueva contraseña de la cuenta de Postgres:
¿Recibiendo este mensaje de error ?:
4) Debe darle a su usuario la capacidad de crear bases de datos. Desde el shell psql:
fuente
host: localhost
? Ese fue el verdadero problema para mí. Alrededor de la contraseña necesita comillas simples. En mi teclado eso esshift
+@
. Con el shell psql solo necesita comillas simples alrededor de algunos parámetros. Los necesita alrededor de la contraseña y no del nombre del rol, por ejemplo. Es muy complicado ser honesto, pero está bien una vez que sabes que son matices :)Para solución permanente:
El problema es con tu pg_hba. Esta línea:
Debiera ser
Luego reinicie su servidor postgresql después de cambiar este archivo.
Si estás en Linux, el comando sería
fuente
Estaba enfrentando el mismo problema en la máquina Ubuntu, así que eliminé este error siguiendo algunos pasos. Cambiar a usuario postgres
pedirá contraseña y por defecto la contraseña es
postgres
Después de cambiar el usuario a postgres, abra la consola psql
así que verifique la versión de postgres si hay varias versiones disponibles
Ahora abierto
postgres user
9.1
es el comando superior del formulario de retorno de versióny reemplazar
a
Reiniciar el servicio
Escribo pasos en mi blog también
http://tarungarg402.blogspot.in/2014/10/set-up-postgresql-on-ubuntu.html
fuente
md5
autenticación requiere una contraseña no nula para el usuario de su base de datos (hoy en día se me mordió al intentar maximizar la pereza al crear una aplicación Rails).Puede ir a su archivo /var/lib/pgsql/data/pg_hba.conf y agregar confianza en lugar de Ident. Funcionó para mí.
Para obtener más detalles, consulte este problema La autenticación de identidad falló para el usuario
fuente
/var/lib/pgsql/9.2/data/pg_hba.conf
Agregar
host: localhost
fue la magia para mífuente
Si recibe ese mensaje de error (
Peer authentication failed for user (PG::Error)
) cuando ejecuta pruebas unitarias, asegúrese de que exista la base de datos de prueba.fuente
También enfrenté este mismo problema mientras trabajaba en mi entorno de desarrollo, el problema fue que dejé un
host: localhost
comentario en elconfig/database.yml
archivo.Por lo tanto, mi aplicación no pudo conectarse a la base de datos PostgreSQL, simplemente descomentarlo resolvió el problema.
Eso es todo.
espero que esto ayude
fuente