דילוג לתוכן
שגיאות וקריסות

שגיאת חיבור למסד נתונים ב-WordPress: מה זה אומר ואיך מתקנים

תקנו את שגיאת החיבור למסד הנתונים ב-WordPress: בדקו את ארבעת פרטי ההזדהות ב-wp-config.php, ודאו ששרת מסד הנתונים פעיל, ותקנו טבלה פגומה.

פורסם

אתם טוענים את האתר וכל עמוד — גם חזית האתר וגם wp-admin — מוחלף במשפט אפור יחיד: שגיאה בהתחברות למסד הנתונים. שום דבר לא מוצג, כי שום דבר לא יכול. WordPress בכלל לא הגיע לשלב של בניית עמוד.

הנה המודל המנטלי שהופך את התיקון למהיר. WordPress שומר את כל התוכן שלכם — פוסטים, עמודים, הגדרות, משתמשים — במסד נתונים MySQL, לא בקבצים. בכל בקשה הוא קורא ארבעה פרטי התחברות מ-wp-config.php, מתחבר למסד הזה, ושולף את מה שהוא צריך. השגיאה הזו אומרת שהחיבור נוסה וסורב. התיקון הוא להבין למה הוא סורב, ויש רק שלוש אפשרויות.

שלוש הסיבות, לפי סדר הסבירות

  1. פרט הזדהות שגוי ב-wp-config.php — התוצאה הרגילה של מעבר אחסון.
  2. שרת מסד הנתונים מושבת או עמוס מדי — התוצאה הרגילה של ששום דבר לא השתנה אצלכם.
  3. מסד הנתונים פגום — פחות נפוץ, והוא מכריז על עצמו אחרת.

עברו עליהן בסדר הזה.

שלב 1: בדקו את ארבעת פרטי ההזדהות

פתחו את wp-config.php בשורש האתר שלכם דרך SFTP או מנהל הקבצים של חברת האחסון. ארבע שורות מגדירות את החיבור:

define( 'DB_NAME', 'your_database_name' );
define( 'DB_USER', 'your_database_user' );
define( 'DB_PASSWORD', 'your_database_password' );
define( 'DB_HOST', 'localhost' );

כל אחד מאלה חייב להתאים בדיוק למה שחברת האחסון הקצתה. פתחו את קטגוריית מסד הנתונים בלוח הבקרה של האחסון (ב-cPanel זה “MySQL Databases”) והשוו תו מול תו:

  • DB_NAME — חברות אחסון מוסיפות לרוב תחילית של שם החשבון שלכם לשם, כמו cpaneluser_wpdb. התחילית היא חלק מהשם.
  • DB_USER — אותה תחילית חלה, והמשתמש חייב להיות משויך למסד הזה, לא רק להתקיים.
  • DB_PASSWORD — האשם הנפוץ ביותר, ובגדול. אם אינכם בטוחים, אפסו אותו בלוח הבקרה והדביקו את הערך החדש. שימו לב לרווח נגרר או למרכאה חכמה.
  • DB_HOST — אל תניחו localhost. הרבה חברות אחסון משתמשות בשרת מסד נתונים ייעודי עם כתובת כמו mysql.yourhost.com, לפעמים עם :port. לוח הבקרה מציג את הערך הנכון.

מכיוון שהקובץ הזה הוא בדיוק המקום שבו ארבעת הערכים האלה חיים, הדרך הבטוחה ביותר לחולל מחדש wp-config.php נקי ומצוטט נכון היא מחולל wp-config.php — מלאו את ארבעת שדות מסד הנתונים והדביקו את התוצאה מעל הבלוק הישן.

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

שלב 2: ודאו ששרת מסד הנתונים באמת פעיל

אם פרטי ההזדהות נכונים והשגיאה נמשכת — במיוחד אם היא הופיעה מעצמה בלי שום שינוי מצדכם — שרת מסד הנתונים עצמו הוא החשוד.

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

כדי לבדוק אם פרטי ההזדהות בכלל תקפים ללא תלות ב-WordPress, הניחו סקריפט זעיר לצד wp-config.php:

<?php
$link = mysqli_connect('localhost', 'your_database_user', 'your_database_password');
if (!$link) {
    die('Connection failed: ' . mysqli_connect_error());
}
echo 'Connected — the server and credentials are fine.';

השתמשו ב-DB_HOST, DB_USER ו-DB_PASSWORD האמיתיים שלכם. אם מודפס Connected, פרטי ההתחברות שלכם עובדים והבעיה במקום אחר (מסד נתונים פגום, שלב 3). אם מודפסת שגיאת חיבור, ההודעה אומרת לכם איזו: “Access denied” פירושה משתמש או סיסמה שגויים; “Can’t connect to MySQL server” פירושה מארח שגוי או שירות שבאמת מושבת — הגיע הזמן לפנות לחברת האחסון. מחקו את הסקריפט ברגע שסיימתם.

שלב 3: תקנו מסד נתונים פגום

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

ל-WordPress יש כלי תיקון מובנה. הוסיפו שורה אחת ל-wp-config.php, מעל ההערה “stop editing”:

define( 'WP_ALLOW_REPAIR', true );

אז גשו לכתובת הזו ישירות בדפדפן:

https://yoursite.com/wp-admin/maint/repair.php

היא נטענת ללא התחברות — זו הנקודה, שכן ייתכן שאתם נעולים בחוץ — ומציעה “Repair Database” ו-”Repair and Optimize Database”. הריצו אותה.

ואז מחקו מיד את השורה הזו מ-wp-config.php. כל עוד היא קיימת, כל אחד באינטרנט יכול לגשת לכתובת הזו ולהריץ תיקון על מסד הנתונים שלכם. זה אינו ניקיון רשות; זו סגירה של פרצה שבדיוק פתחתם.

שלב 4: כשהתיקון אפילו לא מתחבר

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

עצות שאפשר להתעלם מהן בשקט

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

“הגדל את מגבלת הזיכרון של PHP.” מיצוי זיכרון הוא שגיאה אחרת עם הודעה אחרת. הגדלת המגבלה לא עושה כלום עבור חיבור מסורב למסד נתונים ורק מסתירה שמעולם לא בדקתם את פרטי ההזדהות.

“נקה את המטמון.” הכשל מתרחש ב-PHP לפני שמטמון כלשהו יכול להגיש עמוד. ניקוי המטמון לא משנה כלום כל עוד החיבור מסורב; שווה לעשות זאת רק אחרי שהאתר חזר.

“ערוך את מסד הנתונים ישירות כדי לתקן.” לגשת ל-phpMyAdmin כדי לערוך טבלאות ביד לפני שווידאתם שהחיבור בכלל עובד — כך תקלה זמנית הופכת לאובדן נתונים קבוע. ודאו קודם את החיבור; געו בנתונים אחרונים, ורק מתוך גיבוי.

עדיין תקועים?

אם פרטי ההזדהות מאומתים עם סקריפט הבדיקה, השרת פעיל, והתיקון מתחבר ומדווח שאין שגיאות, אבל האתר עדיין מציג את ההודעה, החשוד שנותר הוא תוסף שמדבר עם מסד הנתונים בחיבור משלו — תוסף מטמון או תוסף מסד נתונים ששמר מארח מיושן. שנו את שם wp-content/plugins ל-plugins-off דרך SFTP כדי לשלול אותו. אם השגיאה מתנקה, החזירו תוספים אחד-אחד עד שהיא חוזרת.

FAQ

שאלות

מה המשמעות של שגיאת חיבור למסד נתונים ב-WordPress?

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

איזה קובץ מחזיק את פרטי ההתחברות למסד הנתונים של WordPress?

הקובץ wp-config.php, בשורש האתר שלכם לצד wp-load.php. ארבעה קבועים מגדירים את החיבור: DB_NAME, DB_USER, DB_PASSWORD ו-DB_HOST. תו שגוי אחד בכל אחד מהם מייצר בדיוק את השגיאה הזו, והעברות אחסון הן הדרך הנפוצה ביותר שבה הם מתיישנים ומפסיקים להתאים.

למה השגיאה הופיעה כשלא שיניתי כלום?

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

האם DB_HOST הוא תמיד localhost?

לא, וההנחה הזו גורמת לשגיאה הזו אחרי הרבה העברות. לא מעט חברות אחסון מריצות את מסד הנתונים על שרת נפרד, ולכן DB_HOST הוא כתובת כמו mysql.yourhost.com או כתובת IP עם פורט. קטגוריית מסד הנתונים בלוח הבקרה של האחסון מציגה את הערך הנכון. העתיקו אותו בדיוק, כולל כל סיומת :port.

איך מתקנים מסד נתונים פגום של WordPress?

הוסיפו define( 'WP_ALLOW_REPAIR', true ); ל-wp-config.php, ואז גשו אל yoursite.com/wp-admin/maint/repair.php בדפדפן והריצו את התיקון. הוא אינו דורש התחברות, ובדיוק בגלל זה חובה למחוק את השורה הזו ברגע שסיימתם — השארתה מאפשרת לכל אחד להריץ תיקון. אם הוא לא מתחבר בכלל, הבעיה היא בפרטי ההזדהות או בשרת, לא בפגימה.

למה רק wp-admin מציג את השגיאה בעוד חזית האתר נטענת?

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