עבור לתוכן

בעיה בהעלאת קובץ SQL ל- PHPMyAdmin

Featured Replies

פורסם

החלפתי לאחרונה את השרת אחסון שלי, ואני מנסה להחזיר לאוויר את האתר wordpress שלי. הורדתי מהשרת הקודם את כל התוכן שהיה על ה- FTP, ונכנסתי ל- PHPMyAdmin והורדתי גיבוי של המסד נתונים שלי. עכשיו אני מנסה להעלות את הכל בחזרה לשרת החדש, העליתי את כל הקבצים אל ה- FTP, אבל כשאני מנסה להעלות את ה- SQL ל- PHPMyAdmin, הוא נותן לי את ההודעת שגיאה הבאה:

[h=1]Error[/h] SQL query:

--

-- Database: `asakoshe_asa`

--

-- --------------------------------------------------------

--

-- Table structure for table `wp_commentmeta`

--

-- Creation: Oct 10, 2012 at 07:17 AM

-- Last update: Aug 29, 2013 at 11:47 AM

--

CREATE TABLE `wp_commentmeta` (

`meta_id` bigint( 20 ) unsigned NOT NULL AUTO_INCREMENT ,

`comment_id` bigint( 20 ) unsigned NOT NULL DEFAULT '0',

`meta_key` varchar( 255 ) DEFAULT NULL ,

`meta_value` longtext,

PRIMARY KEY ( `meta_id` ) ,

KEY `comment_id` ( `comment_id` ) ,

KEY `meta_key` ( `meta_key` )

) ENGINE = MYISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT =5;

MySQL said: dot.gif

#1046 - No database selected

כרגע כאשר נכנסים לאתר רק רואים את ההודעה "שגיאה בהתחברות למסד הנתונים". מה אפשר לעשות?

פורסם

אתה יוצר טבלה בסקריפט, אבל באיזה סכמה היא ממוקומת?

לא שמת לב להודעה?

#1046 - No database selected

פורסם
  • מחבר

האמת שאני לא בטוח, כי אני העליתי את זה קומפלט כמו שזה מהשרת הקודם, את הכל בנה ה- wordpress, ואני לא באמת מודע למה נמצא שם מתחת למכסה המנוע, אם תוכל להכווין אותי אני אולי אצליח למשות לך מידע מהקובץ SQL

פורסם
  • מחבר

יש משהו שאני יכול לעשות עכשיו? זה היה די מידי המעבר, בגלל ש- 000webhost המפגרים האלה מחקו לי את האתר בטעות, והספקתי לעשות גיבוי מהיר יומיים לפני, אבל לא התעמקתי אם יש לי את הכל, אני יכול להעלות לך לפה את הקובץ SQL אם זה יעזור לך להבין יותר טוב את המצב. אני די newbie בכל העניין של Database, נתתי לוורדפרס לעשות את כל העבודה ולכן אני גם לא יודע עכשיו אם חסר ומה חסר. האתר כבר לא קיים בשום מקום אחר, כי כמו שאמרתי הם מחקו לי אותו בטעות.

פורסם

Wordpress הוא לא יותר מCMS. אתה גם לא אמור לחפור בDB שלו כי כי זאת לא המטרה של המוצר.

מה גיבית ואיך?

אתה אמור לגבות את ה document root ולקחת dump של הDB שלך ולא יותר מזה.

פורסם
  • מחבר

כמו שאמרתי הורדתי את כל התוכן של השרת FTP, ונכנסתי ל- PHPMyAdmin, הלכתי ללשונית Export, ופשוט הורדתי את הקובץ SQL

- - - תגובה אוחדה: - - -

היה לי גם עוד גיבוי ישן יותר של קובץ SQL, ועד כמה שאני זוכר הוא כבר עבד לי פעם אחת כשניסיתי לשחזר את האתר שלי - כשעברתי ל- 000webhost, וגם הקובץ הזה נותן לי את אותה הודעת שגיאה כשאני מנסה להעלות אותו עכשיו

פורסם

export זה לא גיבוי. זה רק מייצא את המבנה של האובייקט שאתה מסמן בDB לקובץ שמכיל קוד ליצירת אותו אובייקט (table/view/stored procedure וכד').

בדקת מה יש בתוך הגיבוי?

פורסם
  • מחבר

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

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

פורסם

מבדיקה קצרה של הקובץ שהעלאת (ואז מחקת), יש לך dump מלא של הטבלאות, כולל התוכן שלהן, אז מהבחינה הזאת אתה מסודר.

על מנת לבצע שחזור, עליך ליצור בסיס נתונים (DB) חדש, לבחור אותו ב phpMyAdmin ואז לעשות Import לקובץ.

https://drupal.org/node/81995

(אמנם המדריך הוא ל Drupal, אבל התהליך זהה).

פורסם
  • מחבר

זאת הקלה, תודה... (כנראה העריכה המהירה מחקה לי את הקובץ, אבל העיקר שהספקת לראות אותו), יכול להיות שהבעיה אם כך היא שלא בחרתי ב- PHPMyAdmin את ה- DB, למרות שיצרתי כזה, אני אבדוק את העניין ואחזור אליכם אם נפתרה הבעיה או לא (בתקווה ש- PHPMyAdmin יחליט לזוז בקרוב)

פורסם
היית צריך לקחת dump ולשפוך אותו לשרת החדש. מה שאתה מריץ זה רק סקריפט שיוצר טבלה אחת (ויש הרבה יותר בWP) בלי תוכן בפנים.

http://codex.wordpress.org/Restoring_Your_Database_From_Backup

export זה לא גיבוי. זה רק מייצא את המבנה של האובייקט שאתה מסמן בDB לקובץ שמכיל קוד ליצירת אותו אובייקט (table/view/stored procedure וכד').

מה נסגר עם התגובות המצחיקות האלה? export זה לא גיבוי? נו באמת.

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

catsmonster הקובץ שלך בסדר גמור. הבעיה היא שאתה פשוט לא טוען אותו במקום הנכון.

אתה צריך לעשות לו IMPORT לתוך דטאבייס קיים. אם הוא לא קיים, אתה צריך קודם כל ליצור אותו.

תסתכל בקובץ ההגדרות של wordpress כדי לראות מה שם הדטאבייס, היוזר והסיסמה שהוא מנסה להתחבר איתם - ותיצור את הדטאבייס החדש בהתאם.

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

אחרי שהדטאבייס יהיה קיים (וריק) בשרת החדש, כנס אליו עם phpmyadmin ומשם תעשה import לקובץ הגיבוי שלך.

פורסם
  • מחבר

זה באמת עבד, והדטאבייס עלה, אבל עכשיו אני מקבל את הודעת השגיאה הבאה כשאני מנסה לעלות את האתר:

Fatal error: Call-time pass-by-reference has been removed in /home/asakoshe/public_html/wp-content/plugins/user-access-manager/class/UamUserGroup.class.php on line 646

פתחתי את הקובץ באזור האמור וזה התוכן של הקובץ (646 זה רק שורה שכתוב בה ) ; )

/**

* Returns all objects of the given type.

*

* @param string $objectType The object type.

* @param string $type The return type, could be real or full.

*

* @return array

*/

function getObjectsFromType($objectType, $type = 'real')

{

if (!in_array($objectType, $this->getAllObjectTypes())) {

return;

}

if ($this->id == null

|| $type != 'real'

&& $type != 'full'

) {

return array();

}

if (isset($this->objects[$objectType])

&& isset($this->objects[$objectType][$type])

&& $this->objects[$objectType][$type] != -1

) {

return $this->objects[$objectType][$type];

} else {

$this->objects[$objectType][$type] = array();

}

global $wpdb;

$dbObjects = $wpdb->get_results(

$this->_getSqlQuery($objectType, 'select')

);

foreach ($dbObjects as $dbObject) {

$object = $this->_getSingleObject($objectType, $dbObject->id, $type);

if ($object !== null) {

$this->objects[$objectType][$type][$object->id] = $object;

}

}

$postableTypes = $this->getAccessHandler()->getPostableTypes();

if ($type == 'full'

&& !in_array($objectType, $postableTypes)

&& $objectType != 'role'

) {

if ($objectType == 'category') {

$this->objects[$objectType][$type]

= $this->getFullCategories($this->objects[$objectType][$type]);

} elseif ($objectType == 'user') {

$this->objects[$objectType][$type] = $this->getFullUsers();

} else {

$plObject = $this->getAccessHandler()->getPlObject($objectType);

$this->objects[$objectType][$type]

= $plObject['reference']->{$plObject['getFullObjects']}(

$this->objects[$objectType][$type],

&$this

);

}

}

return $this->objects[$objectType][$type];

}

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

פורסם

זה מגיע מפלאגין ישן שמותקן אצלך, בשם user-access-manager.. השגיאה נובעת משימוש בקוד שהוא deprecated בגירסאות חדשות של PHP (גירסה 5 ומעלה).

http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available

הפיתרון הוא לשדרג את הפלאגין לגירסה חדשה יותר אם קיימת, או פשוט לוותר עליו (מה הוא בכלל עושה?) בהנחה שאתה לא רוצה לשנמך את ה-PHP עצמו רק בשבילו..

פורסם
  • מחבר

הבעיה שאין לי גישה לאתר עצמו ככה, אבל אולי אפשר פשוט למחוק את הפלאגין והבעיה תיפתר?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים