مرحبا،
أنا جديد على MIMIC-III ، وقمت بتنزيل ملفات csv وفك ضغطها. عندما أحاول إنشاء قاعدة بيانات على الرغم من أنني أتلقى هذا الخطأ ، (أعتذر ، فأنا أيضًا مبتدئ في postgres).
(tf_011_v2) ajay@ajay-h8-1170uk:~/PythonProjects/mimic-code-master/buildmimic/postgres$ make mimic datadir="/home/ajay/PythonProjects/mimic-code-master/data/"
-----------------------
-- Checking for data --
-----------------------
Data path: /home/ajay/PythonProjects/mimic-code-master/data/
All data present!
------------------------
-- Building MIMIC-III --
------------------------
MIMICUSER="postgres" MIMIC_DB="mimic" MIMIC_PASSWORD="postgres" MIMIC_SCHEMA="mimiciii" ./create_mimic_user.sh
MIMIC_PASSWORD is set
MIMIC_DB is set to 'mimic'
User is unset, using default 'postgres'
postgres
psql: FATAL: Peer authentication failed for user "postgres"
make: *** [create-user] Error 2
حاولت تغيير مستخدم نظام التشغيل الخاص بي إلى postgres
، باستخدام
sudo su - postgres
ولكن بعد ذلك لا يمكنني الوصول إلى makefile أو المجلد الذي يحتوي على ملفات csv؟
postgres@ajay-h8-1170uk:~$ cd /home/ajay/PythonProjects/mimic-code-master/buildmimic/postgre
-su: cd: /home/ajay/PythonProjects/mimic-code-master/buildmimic/postgres: Permission denied
أعتقد أن مشكلتي قد تكون مشابهة لمشكلة أخرى مغلقة
صعوبة في بناء قاعدة بيانات باستخدام PostgreSQL - https://github.com/MIT-LCP/mimic-code/issues/259
لذلك أعتقد أنني بحاجة لتغيير makefile بطريقة أو بأخرى ، أي نصيحة؟
AjayTalati ، يبدو أن المصادقة فشلت لأن ملفك pg_hba.conf
يتطلب مصادقة نظير ولا يوجد مستخدم postgres على نظامك.
يمكنك حل هذه المشكلة عن طريق تحرير ملف pg_hba.conf
أو عن طريق تعيين المستخدم إلى اسم مستخدم النظام الخاص بك. لمزيد من التفاصيل ، راجع: https://stackoverflow.com/questions/17443379/psql-fatal-peer-authentication-failed-for-user-dev
تغيير السطر التالي بـ pg_hba.conf
:
# TYPE DATABASE USER ADDRESS METHOD
local all all peer
ل:
# TYPE DATABASE USER ADDRESS METHOD
local all all md5
... سيسمح لك بإدخال كلمة المرور لتسجيل الدخول.
مرحبًا tompollard ، شكرًا جزيلاً على المساعدة :)
سؤال غبي نوعًا ما ، ولكن كيف يمكنك معرفة مكان pg_hba.conf
على نظام أوبونتو؟ لقد حاولت للتو
(tf_011_v2) ajay@ajay-h8-1170uk:~$ find . -type f -name "pg_hba.conf"
ولكن لا حظ في العثور على pg_hba.conf
؟
قد تجد أنه من الأسهل تغيير المستخدم من "postgres" إلى مستخدم نظامك (unix). سيكون الملف pg_hba.conf على الأرجح في /etc/postgresql/9.x/main/pg_hba.conf
لم أتمكن من العثور على مجلد postgresql
في home/etc
لذلك ربما هذه مشكلة؟
لست متأكدًا من كيفية "_تغيير المستخدم من" postgres "إلى نظامك (unix) user_" ، لكنني حاولت تشغيل الأمر باستخدام sudo
، ولكن ما زلت أعاني من نفس المشكلة ،
(tf_011_v2) ajay@ajay-h8-1170uk:~/PythonProjects/mimic-code-master/buildmimic/postgres$ sudo make mimic datadir="/home/ajay/PythonProjects/mimic-code-master/data/"
[sudo] password for ajay:
-----------------------
-- Checking for data --
-----------------------
Data path: /home/ajay/PythonProjects/mimic-code-master/data/
All data present!
------------------------
-- Building MIMIC-III --
------------------------
MIMICUSER="postgres" MIMIC_DB="mimic" MIMIC_PASSWORD="postgres" MIMIC_SCHEMA="mimiciii" ./create_mimic_user.sh
MIMIC_PASSWORD is set
MIMIC_DB is set to 'mimic'
User is unset, using default 'postgres'
postgres
psql: FATAL: Peer authentication failed for user "postgres"
make: *** [create-user] Error 2
آسف على مشاكل المبتدئين؟
أعتقد أنني يجب أن أحاول اتباع الخطوات هنا
https://mimic.physionet.org/tutorials/install-mimic-locally-ubuntu/
يجب أن تعمل ملفات التكوين - لست بحاجة إلى sudo. لن يعمل الأمر find
لأنه بدا فقط في المجلد المحلي ، والذي كان في ذلك الوقت ~/
. حاول تشغيل locate pg_hba.conf
. إذا لم يعثر الموقع على أي شيء ، فحاول تشغيل sudo find / -type f -name "pg_hba.conf"
. الأمر sudo هو تجنب الكثير من الرسائل حول "تم رفض الإذن". بمجرد العثور على pg_hba.conf ، قم بتحريره كما يقترح tompollard ، ثم أعد تشغيل postgres باستخدام sudo service postgresql restart
بالطبع ، يمكنك اتباع البرنامج التعليمي الذي قمت بربطه أيضًا ، إنه دليل أكثر قليلاً ولكن قد تجده مفيدًا لأنك تتعلم المزيد من بناء جملة postgres وتتعلم المزيد حول كيفية تنظيم البيانات!
مرحبا alistairewj شكرا جزيلا ،
لقد فعلت ما قلته ووجدت pg_hba.conf
، وقمت بتحريره كما نصحت ، ثم أعدت تشغيل postgres.
لسوء الحظ ، ما زلت أحصل على نفس مصادقة _peer التي فشلت لمشكلة المستخدم "postgres" _
ajay@ajay-h8-1170uk:~/PythonProjects/mimic-code-master/buildmimic/postgres$ make mimic datadir="/home/ajay/PythonProjects/mimic-code-master/data/"
-----------------------
-- Checking for data --
-----------------------
Data path: /home/ajay/PythonProjects/mimic-code-master/data/
All data present!
------------------------
-- Building MIMIC-III --
------------------------
MIMICUSER="postgres" MIMIC_DB="mimic" MIMIC_PASSWORD="postgres" MIMIC_SCHEMA="mimiciii" ./create_mimic_user.sh
MIMIC_PASSWORD is set
MIMIC_DB is set to 'mimic'
User is unset, using default 'postgres'
postgres
psql: FATAL: Peer authentication failed for user "postgres"
make: *** [create-user] Error 2
ajay@ajay-h8-1170uk:~/PythonProjects/mimic-code-master/buildmimic/postgres$
حسنًا ، .... ، لقد اتبعت البرنامج التعليمي للبناء اليدوي ، ويبدو أنه يتم الآن استيراد ملفات csv - هل ستعلمك ما إذا كان هذا يعمل؟
ajay@ajay-h8-1170uk:~/PythonProjects/mimic-code-master/buildmimic/postgres$ psql 'dbname=mimic user=ajay options=--search_path=mimiciii' -f postgres_load_data.sql -v mimic_data_dir="/home/ajay/PythonProjects/mimic-code-master/data/"
Password:
COPY 58976
COPY 34499
COPY 7567
يبدو أنه نجح ،
ajay@ajay-h8-1170uk:~/PythonProjects/mimic-code-master/buildmimic/postgres$ psql 'dbname=mimic user=ajay options=--search_path=mimiciii' -f postgres_load_data.sql -v mimic_data_dir="/home/ajay/PythonProjects/mimic-code-master/data/"
Password:
COPY 58976
COPY 34499
COPY 7567
COPY 0
COPY 573146
COPY 4485937
COPY 651047
COPY 125557
COPY 134
COPY 14567
COPY 3882
COPY 12487
COPY 753
COPY 61532
COPY 17527935
COPY 3618991
COPY 27854055
COPY 631726
COPY 2083180
COPY 4349218
COPY 46520
COPY 4156450
COPY 258066
COPY 240095
COPY 73343
COPY 261897
لذلك سأغلق هذه المشكلة - شكرًا جزيلاً على مساعدتك: +1:
لقد واجهت نفس المشكلة كما في OP ، والتي قمت بحلها من خلال استدعاء النص البرمجي بـ DBUSER="$USER"
مثل ذلك:
make create-user mimic-gz datadir="$datadir" DBUSER="$USER"
التعليق الأكثر فائدة
لقد واجهت نفس المشكلة كما في OP ، والتي قمت بحلها من خلال استدعاء النص البرمجي بـ
DBUSER="$USER"
مثل ذلك:make create-user mimic-gz datadir="$datadir" DBUSER="$USER"