תיקון: psql: לא הצליח להתחבר לשרת: אין קובץ או ספרייה כאלה

PostgreSQL מקדמת את עצמה כפלטפורמת יישומי קוד פתוח המתקדמת ביותר, ולדביאן לינוקס אין ספק שיש הרבה חבילות שהופכות אותה למורכבת עוד יותר. אתה יכול גם למצוא עומסי סירות של חבילות עבור PostgreSQL אם אתה עובד עם שרת אובונטו או עם כל אחד מסביבי אובונטו השונים, מכיוון שהם מבוססים על הליבה של דביאן. רמה זו של מורכבות ופיתוח גורמת לאזהרות "לא יכול להתחבר לשרת" ול"אין קובץ או ספרייה כאלה "הרבה יותר מעצבנות.

למרבה המזל, לרוב מדובר במקרים פשוטים של בעיות הרשאה הנגרמות מכך ש- PostgreSQL רוצה שמשתמש בשם postgres יחזיק בספריות אלה. באמצעות טריק פשוט של שורת פקודה, אתה יכול לתקן את זה כמעט באופן מיידי. אתה רוצה לעבור לפני כן כמה בדיקות אבחון בסיסיות, רק כדי לוודא שזו למעשה הבעיה שאתה מתמודד איתה.

תיקון PostgreSQL לא יכול להתחבר לשגיאות שרת

ראשית, נסה להפעיל מחדש את מערכת PostgreSQL באופן ידני. לפעמים זה מספיק כדי לתקן דברים, ואם לא אז לפחות תקבל הודעת שגיאה לעבוד ממנה. סביר להניח שאתה פשוט מפעיל מחדש את המערכת על ידי הנפקת הפקודה psql כמשתמש postgres.

אתה עלול לגלות שהדבר פינה הכל. אחרת, ייתכן שתקבל שורה המכילה "psql: לא יכול להתחבר לשרת: אין קובץ או ספרייה כאלה", מה שאומר שיש לך בעיות הרשאה. אם תקבל הודעת שגיאה זו, תקבל גם ריחוף טקסט אחר.

בדוק את מצב השירות אם קיבלת הודעה זו כדי לוודא שהמודולים נטענים. הם צריכים להיות, אבל אם הם לא, אולי כדאי לך להפעיל מחדש. אם אתה מקבל הודעה שכותרתה "טעון: טעון (/lib/systemd/system/postgresql.service; מופעל)", הם פועלים. נסה להפעיל מחדש את sudo service postgresql רק כדי לבצע הפעלה מחדש קצרה ולראות אם זה מתקן משהו. זה בדרך כלל לא, אבל אולי כדאי לנסות בהתאם.

בהנחה שזה לא עזר, הסתכל בתוך יומן PostgreSQL כדי לחפש שגיאות. במקרה הלא סביר שתמצא משהו על שגיאות חבילה, ייתכן שחסר לך אחד ממודולי ה- SQL. זה בדרך כלל לא הגורם לבעיות אלה, אבל זה בהחלט לא יכול להזיק לפחות להסתכל. סביר להניח שתיתקל ממש במשהו שמזהיר אותך ש"ההרשאות צריכות להיות u = rwx (0700) "ו

של"ספריית הנתונים "/var/lib/postgresql/9.6/main" יש גישה קבוצתית או עולמית ", אם כי ייתכן שתראה מספר גרסאות אחר בהתאם לשרת SQL שאתה מריץ.

הסיבה לכך היא ש- Debian והפצות דומות מצפות שמשתמשים וקבוצות postgres שולטים בספריות אלה עם הרשאות 0700 וכל הקבצים דרך הרשאות 0600 מטעמי אבטחה. כל שעליך לעשות הוא להפעיל את הפקודה הבאה במסוף כדי לתקן הרשאות:

sudo chown -R postgres: postgres /var/lib/postgresql/9.6/ && sudo chmod -R u = rwX, go = /var/lib/postgresql/9.6/

זכור כי צריך להיות X באותיות גדולות ולא המקרים הנפוצים יותר x שאתה כנראה מכיר יותר בשל הדרך הספציפית שאתה רוצה להגדיר אפשרויות הרשאת קבצים אלה. אמנם אתה זקוק לגישת שורש בכדי לעשות זאת, אך הכללתם של שני סימני הסודו אמורה להספיק בכדי לתת לעצמך את ההרשאות המתאימות בעת הפעלת כמשתמש רגיל. זה חשוב מכיוון שאובונטו ויישומי לינוקס השונים התנתקו מאובונטו מביאים את חשבון השורש הראשי, כך שעליך לעשות את הדברים בדרך זו.

לאחר סיום פקודה זו, באפשרותך להפעיל מחדש את השירות על ידי הפעלה מחדש של sudo postgresql מהמסוף ולא אמורה להיות לך שגיאות הפעם. אם היית מסתכל ביומן, אזהרות אלה לגבי בעיות הרשאות לא אמורות להיות שם יותר.

זו שגיאה שקורה כתוצאה מתנאים ספציפיים למדי, לכן לא כדאי לך לחוות אותה שוב לאחר שתיקנת אותה בפעם הראשונה ובלבד שלא תנסה לעשות ידנית דבר הכרוך במניפולציה של הרשאות בספריות PostgreSQL. אין מצב שבכל מקרה זה אמור להיות נחוץ, מלבד תיקון הבעיה מלכתחילה.