Saya menjalankan pengembangan saya di Ubuntu 11.10, dan RubyMine
Ini adalah pengaturan pengembangan saya untuk database.yml: yang dibuat RubyMine untuk saya
development:
adapter: postgresql
encoding: unicode
database: mydb_development
pool: 5
username: myuser
password:
ketika saya mencoba menjalankan aplikasi, saya mendapatkan kesalahan ini di bawah, sepertinya saya belum membuat pengguna 'proyek', tetapi, bagaimana saya bisa membuat pengguna dan memberikannya basis data di postgres? jika ini masalahnya, lalu, alat apa yang disarankan untuk digunakan di Ubuntu untuk tugas ini? jika ini bukan masalahnya, mohon saran.
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
danpool: 5
hilang dalam konfigurasi saya. Setelah menambahkannya, kesalahan menghilang.host: localhost
hilang. setelah saya menambahkan itu, semuanya bekerja. Ini ada di Ubuntu 13.04Ini adalah cara yang paling mudah untuk membuat aplikasi rel Anda bekerja dengan postgres di lingkungan pengembangan di Ubuntu 13.10.
1) Buat aplikasi rel dengan postgres YAML dan permata 'pg' di Gemfile:
2) Berikan beberapa fungsi CRUD. Jika Anda hanya melihat apakah postgres berfungsi, buat scaffold:
3) Pada
rails 4.0.1
satu-d postgresql
opsi menghasilkan YAML yang tidak termasuk parameter tuan rumah. Saya menemukan saya membutuhkan ini. Edit bagian pengembangan dan buat parameter berikut:Perhatikan
database
parameter untuk database yang belum keluar, danusername
danpassword
kredensial untuk peran yang juga tidak ada. Kami akan membuatnya nanti!Ini adalah bagaimana
config/database.yml
harus melihat (tidak ada rasa malu dalam copypasting: D):4) Mulai postgres shell dengan perintah ini:
4a) Anda mungkin mendapatkan kesalahan ini jika pengguna Anda saat ini (seperti pada pengguna komputer Anda) tidak memiliki peran postgres administrasi yang sesuai.
Sekarang saya hanya menginstal postgres sekali, jadi saya mungkin salah di sini, tapi saya pikir postgres secara otomatis membuat peran administrasi dengan kredensial yang sama dengan pengguna yang Anda instal postgres.
4b) Jadi ini berarti Anda perlu mengubah ke pengguna yang menginstal postgres untuk menggunakan perintah psql dan memulai shell:
Dan kemudian jalankan
5) Anda akan tahu Anda berada di shell postgres karena terminal Anda akan terlihat seperti ini:
6) Menggunakan sintaks postgresql, mari kita membuat user kita ditentukan di
config/database.yml
's pembangunan bagian:Sekarang, ada beberapa kehalusan di sini jadi mari kita membahasnya.
Anda harus melihat ini di terminal Anda:
Itu berarti, "ROLE CREATED", tetapi peringatan postgres 'tampaknya mengadopsi konvensi imperatif yang sama dari git hub.
7) Sekarang, masih dalam postgres shell, kita perlu membuat database dengan nama yang kita atur di YAML. Jadikan pengguna yang kami buat di langkah 6 sebagai pemiliknya:
Anda akan tahu jika Anda berhasil karena Anda akan mendapatkan hasilnya:
8) Keluar dari postgres shell:
9) Sekarang saat kebenaran:
Jika Anda mendapatkan ini:
Selamat, postgres bekerja dengan sempurna dengan aplikasi Anda.
9a) Di mesin lokal saya, saya terus mendapatkan kesalahan izin. Saya tidak dapat mengingatnya dengan tepat, tetapi itu adalah kesalahan di sepanjang baris
Meskipun saya akan menyarankan untuk memikirkan dengan sangat hati-hati tentang pengaturan rekursif menulis privaledges pada mesin produksi, secara lokal, saya memberikan seluruh hak istimewa baca tulis aplikasi saya seperti ini:
9b) Naiki satu level direktori:
9c) Tetapkan izin direktori my_application dan semua kontennya ke 666:
9d) Dan jalankan migrasi lagi:
Beberapa tips dan trik jika Anda membuat kesalahan
Coba ini sebelum memulai kembali semua langkah ini:
Pengguna mynewusername tidak memiliki hak istimewa untuk CRUD ke
my_app_development
database? Jatuhkan basis data dan buat kembali dengan mynewusername sebagai pemilik:1) Mulai shell postgres:
2) Jatuhkan
my_app_development
basis data. Hati-hati! Drop berarti benar-benar menghapus!3) Buat yang lain
my_app_development
dan jadikan nama pengguna mynewus:4) Keluar dari shell:
The
mynewusername
pengguna tidak bisa login ke dalam database? Anda pikir Anda menulis kata sandi yang salah di YAML dan tidak bisa mengingat kata sandi yang Anda masukkan menggunakan postgres shell? Cukup ubah peran dengan kata sandi YAML:1) Buka YAML Anda, dan salin kata sandi ke papan klip Anda:
2) Mulai postgres shell:
3) Perbarui
mynewusername
kata sandi. Rekatkan kata sandi, dan ingat untuk menempatkan tanda kutip tunggal di sekitarnya:4) Keluar dari shell:
Mencoba terhubung ke localhost melalui penampil basis data seperti Dbeaver, dan tidak tahu apa kata sandi pengguna postgres Anda? Ubah seperti ini:
1) Jalankan
passwd
sebagai superuser:2) Masukkan kata sandi akun Anda untuk
sudo
(tidak ada hubungannya dengan postgres):3) Buat passwod baru akun postgres:
Menerima pesan kesalahan ini ?:
4) Anda harus memberi pengguna Anda kemampuan untuk membuat basis data. Dari shell psql:
sumber
host: localhost
? Itulah gotcha yang sebenarnya bagi saya. Di sekitar kata sandi Anda memerlukan tanda kutip tunggal. Di keyboard saya itushift
+@
. Dengan shell psql Anda hanya perlu tanda kutip tunggal di sekitar beberapa parameter. Anda membutuhkannya di sekitar kata sandi, dan bukan di sekitar nama peran, misalnya. Sangat jujur untuk jujur, tapi oke setelah Anda tahu itu adalah nuansa :)Untuk solusi permanen:
Masalahnya dengan pg_hba Anda. Garis ini:
Seharusnya
Kemudian restart server postgresql Anda setelah mengubah file ini.
Jika Anda menggunakan Linux, perintahnya adalah
sumber
Saya menghadapi masalah yang sama pada mesin Ubuntu jadi saya menghapus kesalahan ini dengan mengikuti beberapa langkah. Beralih ke pengguna postgres
itu akan meminta kata sandi dan kata sandi standarnya adalah
postgres
Setelah mengalihkan pengguna ke postgres, buka konsol psql
jadi periksa versi postgres jika beberapa versi tersedia
Sekarang buka
postgres user
9.1
adalah versi return form atas perintahdan ganti
untuk
Mulai ulang layanan
Saya menulis langkah-langkah di blog saya juga
http://tarungarg402.blogspot.in/2014/10/set-up-postgresql-on-ubuntu.html
sumber
md5
otentikasi memerlukan kata sandi non-null untuk pengguna basis data Anda (baru saja diketahuinya hari ini ketika mencoba memaksimalkan kemalasan saat membuat aplikasi Rails).Anda dapat pergi ke file /var/lib/pgsql/data/pg_hba.conf Anda dan menambahkan kepercayaan di tempat Ident It bekerja untuk saya.
Untuk perincian lebih lanjut, lihat masalah ini. Identifikasi identitas gagal untuk pengguna
sumber
/var/lib/pgsql/9.2/data/pg_hba.conf
Menambahkan
host: localhost
adalah keajaiban bagi sayasumber
Jika Anda mendapatkan pesan kesalahan (
Peer authentication failed for user (PG::Error)
) saat menjalankan tes unit, pastikan database tes ada.sumber
Saya juga menghadapi masalah yang sama saat bekerja di lingkungan pengembangan saya, masalahnya adalah saya meninggalkan
host: localhost
komentar diconfig/database.yml
file.Jadi aplikasi saya tidak dapat terhubung ke database PostgreSQL, hanya menghapus komentar itu menyelesaikan masalah.
Itu saja.
saya harap ini membantu
sumber