אם רק התחלתם להתעסק עם וורדפרס, אתם עתידים להתקל במספר תקלות במהלך העבודה מול מערכת ניהול תוכן זו. חלקן חמורות וחלקן פחות אך יהיה זה בלתי נמנע וכנראה ותתקלו בתקלות כאלו ואחרות יותר מפעם אחת.
אך מכל השגיאות הנפוצות בהן תתקלו – שגיאת התחברות למסד הנתונים, או בלועזית Error Establishing Database Connection היא השגיאה המבלבלת ביותר.
זאת מכיוון והיא אינה מגיעה עם שום פרטים על השגיאה או על מקור הבעיה ולמרות שזו יכולה להגרם ממספר סיבות. אם לדייק, כשתנסו לגשת לאתר הדבר היחיד שתראו על המסך זו ההודעה הבאה:
שגיאת התחברות למסד הנתונים
בפוסט זה נחקור שגיאה זו שוורדפרס מציגה ונראה מספר פתרונות בהם תוכלו להשתמש בכדי לשחזר את הפעילות התקינה של אתר הוורדפרס שלכם.
מה משמעות ״שגיאת התחברות למסד הנתונים״?
בכדי לספק הסבר ברור על טיב שגיאת ההתחברות למסד הנתונים עלינו לפרק את וורדפרס לשני המרכיבים העיקריים מהם היא בנויה.
וורדפרס אם אינכם יודעים בנויה באמצעות PHP ו MySQL. הקוד הכתוב ב PHP אחראי לכלל הפונקציונליות באתר (למשל הוספת תגובות, הצגת פוסטים וכדומה), לעומתו MySQL אחראית לשמירת המידע עצמו (הגדרות לוח הבקרה, תוכן הפוסטים וכדומה).
לדוגמה, כאשר תכתבו את כתובת האתר שלכם בדפדפן ותלחצו Enter, תכנס PHP לפעולה ותמשוך את תוכן עמוד הבית שלכם ממסד הנתונים הבנוי ב MySQL. לעומת זאת תמונות, סרטונים ומדיה נוספת נשמרים בספרייה wp-content
ונמשכות מתיקייה זו באמצעות PHP.
מסד הנתונים הבנוי ב MySQL מכיל את כל המידע החיוני להצגת האתר. כאשר PHP אינה מצליחה לגשת למסד נתונים זה, ואין זה משנה מהי הסיבה, תתקבל ההודעה ״שגיאת התחברות למסד הנתונים״. במילים אחרות PHP מציינת לנו כי אינה מצליחה למצוא את המידע הנחוץ על מנת להציג את האתר שביקשתם.
הגורמים האפשריים לשגיאת התחברות למסד הנתונים
שגיאת התחברות למסד הנתונים זו יכולה להגרם ממספר סיבות, בינהן הסיבות הבאות:
- פרטי גישה שאינם נכונים (הרשאות), טעויות כתיב, רווחים מיותרים וכדומה. פרטים לא נכונים בפרטי הגישה בקובץ
wp-config.php
יחסמו את גישת האתר למסד הנתונים. - השרת עליו יושב מסד הנתונים ״למטה״ ואינו זמין מסיבה כזו או אחרת.
- בעיות כלשהן בקבצי הליבה של וורדפרס (Corruptd Files).
- בעיות כלשהן במסד הנתונים (Corrupted Database) – תוספים שאינם תקינים, או בעיה בתבנית יכולים להשחית את מסד הנתונים ולפגוע בטבלאות.
בחלק הבא נתאר את הפתרונות השכיחות ביותר לסיטואציות אלו…
אם אתם מעוניינים לפתור את הבעיה בעצמכם פוסט זה הוא מה שאתם מחפשים. יש לדעת כי תמיד ישנה האפשרות לשוחח עם התמיכה הטכנית של חברת האחסון ולבקש עזרה…
כיצד לפתור שגיאת התחברות למסד הנתונים?
מובן מאליו כי אין הגיון בניסיון לפתור בעיה זו ללא הבנת מקור הבעיה. אם אנו מבינים את מקור הבעיה הפתרון בדרך כלל יהיה פשוט וקל. ברוב המקרים הבעיה הינה בעיה בהרשאות למסד הנתונים.
א. בדיקת פרטי הגישה למסד הנתונים
פתחו את קובץ wp-config.php
ותנו מבט בשורות הבאות:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name');
/** MySQL database username */
define('DB_USER', 'database_user');
/** MySQL database password */
define('DB_PASSWORD', 'database_password');
/** MySQL hostname */
define('DB_HOST', 'localhost');
אם אינכם יודעים כיצד לערוך קובץ זה תנו מבט במדריך למתחילים על FTP עבור משתמשי וורדפרס. הקובץ wp-config.php קיים בתיקייה הראשית של התקנת הוורדפרס הנמצאית במרבית המקרים תחת התיקייה public_html. ניתן לערוך קובץ זה גם דרך ה File Manager ב cPanel.
כמובן שההרשאות עבור האתר שלכם יהיו שונים, כלומר database_name
, database_user
וכדומה הינם ספציפיים עבור מסד הנתונים שלכם. ארבע שורות אלו משמעותן:
- database_name – שם מסד הנתונים.
- database_user – היכן שעליכם להגדיר את שם המשתמש למסד הנתונים.
- database_password – היכן שעליכם להגדיר את הסיסמה למסד הנתונים.
- localhost – מתאר היכן יושב מסד הנתונים. במצבים מיוחדים בלבד יש לשנות הגדרה זו וזאת במצבים בהם מסד הנתונים נמצא במכונה אחרת מאשר קבצי ה PHP שך אתר הוורדפרס שלכם.
אם אחד מפרטים אלו אינו נכון תתקבל ״שגיאת התחברות למסד הנתונים״. במקרה זה הדבר הראשון שעליכם לעשות הוא לבדוק את ההרשאות שהגדרתם מול ההרשאות הנכונות – נראה כיצד לעשות זאת:
נציין כי קיימת אפשרות נוספת והיא הגדרה שגויה של קידומת הטבלאות (table_prefix) אך ניגע בזו בהמשך המדריך…
1. בדיקת שם מסד הנתונים ושם המשתמש באמצעות cPanel
במדריך זה נתאר כיצד לבדוק את ההרשאות למסד הנתונים באמצעות cPanel. התחברו לממשק הניהול של אחסון האתר שלכם (cPanel) ולחצו על MySQL® Databases.
בעמוד זה תחת Current Databases תמצאו רת כל מסדי הנתונים הקיימים אצלכם בשרת. ייתכן וקיים רק מסד נתונים אחד, אך אם אין זה המצב עליכם לדעת איזה מסד נתונים מכיל את המידע של אתר הוורדפרס הספציפי בו אתם נתקלים בשגיאת ההתחברות.
שם מסד הנתונים בו אתם צריכים להשתמש נמצא תחת העמוד Database ושם המשתמש של מסד הנתונים יופיע באתה שורה תחת Privileged Users.
העתיקו והדביקו פרטים אלו למקום המתאים בקובץ wp-config.php
ובדקו האם נפתרה בעיית ההתחברות למסד הנתונים. אם כן, מצויין! אך אם אין זה המצב, עלינו לבדוק את תיאורטית מהי הסיסמה הנכונה למסד הנתונים.
אך בכדי לקצר תהליכים (ולכן אמרתי תיאורטית), פשוט יותר יהיה ליצור משתמש חדש, עם סיסמה חדשה ובעל ההרשאות הרלוונטיות למסד הנתונים של אתר הוורדפרס שלכם.
2. יצירת משתמש חדש בעל הרשאות למסד הנתונים
בכדי לעשות זאת, גשו ל Add new User באותו מסך. בחרו שם משתמש וסיסמה וצרו משתמש חדש על לחיצה על Create User.
לאחר מכן, גשו מטה לחלק הנקרא Add User to Database, בחרו את שם המשתמש ואת מסד הנתונים הרלוונטי לאתר הספציפי המדובר ולחצו Add.
במסך הבא לחצו על All Privileges בכדי לתת את כל ההרשאות הנחוצות למשתמש ובצעו את השינוי על ידי הכפתור Make Changes.
שימו לב אגב כי בחלקו העליון של עמוד זה יופיע שם המשתמש ושם מסד הנתונים להם סיפקתם את ההרשאות.
ערכו שוב את הקובץ wp-config.php
ושנו את שם המשתמש והסיסמה הקיימים באלו שיצרתם עכשיו. כעת בדקו שוב האם מתאפשרת גישה לאתר או לא. אם כן, סיימתם, אם לא עברו לשלב הבא.
3. בדיקת קידומת הטבלאות של מסד הנתונים
כפי שהזכרנו קודם לכן, ייתכן וכל ההגדרות למסד הנתונים שלכם נכונות למעט הגדרה אחת – קידומת הטבלאות. בכדי לבדוק את קידומת הטבלאות של מסד הנתונים שלכם גשו למסך הראשי של cPanel.
לחצו על phpMyAdmin ותגיעו למסך חדש (די מאיים חייב לציין). אם אתם נדרשים אגב לספק סיסמה ושם משתמש בכדי להכנס למסך של phpMyAdmin יהיה עליכם לדבר עם התמיכה של חברת האחסון.
בהנחה והגעתם למסך החדש, תגלו בצד שמאל של המסך את כל מסדי הנתונים הקיימים בשרת שלכם. חפשו את שם מסד הנתונים של אתר הוורדפרס שלכם ולחצו עליו.
וודאו כי אתם תחת הלשונית Structure ויופיעו לפניכם כל הטבלאות של מסד הנתונים שבחרתם. עליכם בשלב זה לשים לב לתחילית של כל אחת מהטבלאות (שחוזרת על עצמה). תחילית היא קידומת הטבלאות אותה אתם נדרשים להוסיף בקובץ wp-config.php
ובמקרה של הדוגמה שהצגנו הקידומת הינה dapulse_
.
זה המקום גם לבדוק האם קיימות טבלאות כלל עבור מסד הנתונים. אם לא קיימות טבלאות דבר לא יעזור ועליכם יהיה לשחזר את מסד הנתונים (בתקווה שקיים גיבוי כפי שצריך).
כברירת מחדל קידומת הטבלאות של וורדפרס הינה wp_[TABLE_NAME]
כאשר החלק הרלוונטי, כלומר הקידומת הינה wp_
. זו כמובן יכולה להקרא בכל שם אחר אך עליכם לקבוע קידומת זו בחלקו התחתון של קובץ wp-config.php
כבדוגמה הבאה:
$table_prefix = 'xxxxx_';
כמובן שאתם צריכים להכניס את הקידומת הרלוונטית במקום xxxxx_
וכמובן ששורה זו כבר קיימת בקובץ wp-config.php
ועליכם רק לוודא כי הקידומת המופיעה היא הקידומת הנכונה.
על כל מקרה, לאחר שווידאתם כי קידומת הטבלאות נכונה, בדקו שוב האם קיימת לכם גישה לאתר. אם אתם עדיין מקבלים שגיאת התחברות למסד הנתונים עליכם לעבור לשלב הבא…
ב. האם מסד הנתונים תקין? (Corrupted Database)
אם הטבלאות קיימות במסד הנתונים וכל ההרשאות בקובץ wp-config.php
נכונות, ייתכן שמסד הנתונים אינו תקין. נסו לגשת לממשק הניהול של וורדפרס בכתובת הבאה (החליפו את הדומיין כמובן):
http://yourdomain.co.il/wp-admin/
אם מתקבלת שגיאת התחברות למסד הנתונים גם עבור האתר עצמו וגם עבור ממשק הניהול סעיף זה אינו רלוונטי עבורכם במרבית המקרים. לעומת זאת, אם מתקבלת שגיאה בסגנון של ״אחת (או יותר) מטבלאות מסד הנתונים אינה זמינה״ – ייתכן ועליכם לתקן את מסד הנתונים.
תיקון מסד הנתונים של וורדפרס
תיקון מסד הנתונים (או לפחות הניסיון לתקנו) אינו דורש מאמץ רב. גם במקרה זה עליכם לאתר את הקובץ wp-config.php
בתיקייה הראשית של וורדפרס, לערוך אותו ולהוסיף את השורה הבאה:
define ( 'WP_ALLOW_REPAIR' , true);
קוד זה מאפשר לתקן את מסד הנתונים ללא הצורך להתחבר למסד הנתונים דרך phpMyAdmin. במילים אחרות ניתן לבצע את פעולת תיקון מסד הנתונים גם דרך phpMyAdmin אך לא נסביר כיצד בפוסט זה.
השלב השני הוא לגשת בדפדפן לכתובת הבאה (החליפו את הדומיין לשלכם כמובן):
http://yourdomain.co.il/wp-admin/maint/repair.php
בשלב זה אמור להופיע בפניכם המסך הבא:
עליכם לבחור האם לתקן את מסד הנתונים (Repair Database) או האם לתקן ולבצע אופטימיזציה (Repair & Optimize Database). לחיצה על אחד מאפשרויות אלו תבצע ניסיון לתיקון מסד הנתונים של אתר הוורדפרס שלכם.
לאחר ביצוע הפעולה וודאו כי אתם מוחקים את השורה שהוספתם ב wp-config.php מכיוון וניתן לנצל זו על מנת לגשת למסד הנתונים שלכם.
נסו לגשת לאתר ולראות האם נפתרה הבעיה. אם אתם עדיין רואים שגיאת התחברות למסד הנתונים ייתכן וישנה בעיה וקבצי הליבה של וורדפרס אינם תקינים, לחילופין, ייתכן כי ישנה בעיה ברמת השרת עליו יושב מסד הנתונים של האתר שלכם.
אם זו הסיטואציה לאחר כל הניסיונות שביצענו לתקן את מסד הנתונים, אני ממליץ לכם להתייעץ אם התמיכה הטכנית של חברת האחסון ולברר האם הבעיה היא ברמתם. אם הם טוענים כי הכל תקין מהצד שלהם, עליכם לנסות ולשחזר את קבצי הליבה של וורדפרס.
על מנת לעשות זאת תנו מבט במדריך ״שנמוך גירסת וורדפרס״. התהליך המתואר במדריך הוא בדיוק מה שצריך בכדי לשחזר את קבצי הליבה, רק שבמקרה שלנו אינכם משנמכים גירסה ולכן התייחסו למדריך כאשר אתם מורידים ומשחזרים בדיוק את גירסת וורדפרס הנוכחית שלכם.
לסיכום
אז תכלס אף פעם לא נחמד להתקל בשגיאת התחברות למסד הנתונים, error establishing a database connection בלועזית, אך כפי שראיתם בפוסט זה הדרכים לתקן שגיאה זו הינם די פשוטות. בכל מצב תמיד תזכרו כי אתם יכולים לשוחח עם חברת האחסון בכדי לקבל עזרה בפתרון הבעיה.
אנחנו גם כן נמצאים כאן בכדי לעזור, כך שאם אתם תקועים ונתקלתם בבעיה הרגישו חופשי לספר לנו בתגובות ונשתדל מאד לעזור לכם. אנו מקווים כי מדריך זה עזר לכם ללמוד כיצד לתקן שגיאת התחברות למסד הנתונים באתרי וורדפרס.
יש לך טיפים לגבי Privileged Users?
אני תמיד מסמן את All Privileges, השאלה אם זה לא יותר מידי חזק
לא חזק מדי.
תודה, אז יש משהו יותר חזק מזה שלא ניתן להגיע אליו ולהרוס דברים באתר?
איך אני יכול ליצור עמוד התחברות באתר על מנת לצפות בתוכניות המלאות באתר שלי?