PDA

View Full Version : بازگردانی دیتابیس ! کمک !!!



adnan
پنج شنبه 01 اردیبهشت 1384, 20:29 عصر
سلام !

من از دیتابیس توسط phpmyadmin از کلیه table ها و data
backup گرفتم . حجم فایل با فرمت .gz
حدودا 6.5 مگابایت و بدون فشرده سازی حدودا 52 مگابایت شده است .
حالا می خواستم ببینم چطور می تونم آنرا برگردانم ؟
توسط phpmyadmin که نمی توان اینکارو کرد . چون حداکثر فایل برای پذیرش در این برنامه برای بازگردانی 5.1 مگابایت است . و با توجه به اینکه حجم فایل نسبتا زیاد است می خواستم اینکار کاملا سمت سرور انجام شود . یعنی فایل بر روی سرور قرار دارد و با اجرای یک php script اینکار صورت گیرد و درحین بازگردانی ارتباط بین کلاینت و سرور قطع گردد که مشکلی اگر در internet conection من بوجود آمد کار متوقف نشود .
من در نوشتن این script مشکل دارم . ضمن آنکه خط های فرمان mysql در فایل پشتیان در یک خط قرار ندارد که من بتوانم خط به خط از فایل بخوانم و سپس اجرا کنم .
کسی هست یک sample برای بازگردانی فایلهای پشتیبان توسط phpmyadmin برام اینجا بذاره ؟

oxygenws
جمعه 02 اردیبهشت 1384, 12:00 عصر
برنامه ای با PHP بنویس. این راحتترین راهه فکر کنم :)

sokoot
جمعه 02 اردیبهشت 1384, 16:04 عصر
سلام،
در تائید گفته امید
1. cPanle امکان Extract کردن فایل های tar.gz رو داره.
2. بعد از کدی شبیه به این استفاده کن:

<?php
// . . . connect to mysql and select Database
mysql_query(file_get_contents('path/to/backup.sql'));
// if using mysqli use mysqli_multi_query() instead of mysqli_query()
?>

adnan
جمعه 02 اردیبهشت 1384, 17:20 عصر
البته راحتر ازآن SSH است !

اینکارو با SSH انجام دادم . ممنون :)

adnan
جمعه 02 اردیبهشت 1384, 17:43 عصر
mysql_query(file_get_contents('path/to/backup.sql'));

اینم نکته جالبی بود .
در php بدنبال چنین چیزی بودم که بتوان به این شکل استفاده کرد .

ممنون

adnan
جمعه 02 اردیبهشت 1384, 21:58 عصر
نگاه کنید ببینید دیتابیس چگونه برگشته است :(
www.yarantoos.com

کسی راه حلی بنظرش میرسه ؟

sokoot
جمعه 02 اردیبهشت 1384, 23:34 عصر
سلام عدنان جان،
شما باید با استفاده از cPanel کاربری به شناسه yaran_phpb و با کلمه عبوری که توی کد از اون استفاده شده رو تعریف کنی و بعد هم به اون کاربر اجازه دسترسی به database مورد نطرت رو بدی. این طوری قطعا سه خطای اول و به احتمال زیاد بقیه خطا ها ( که به نطرم میاد همشون وابسته به اولین) برطرف می شن. :)

دقت کن که در فایل Backup اطلاعات مربوط به کاربران database قرار نمی گیره.

adnan
شنبه 03 اردیبهشت 1384, 12:13 عصر
ممنون سکوت جان ً

اون خطایی که پایین صفحه می بینی اصلا مهم نیست و ربطی به دیتابیس موردنظر من نداره .
دیتابیس بدون هیچ مشکلی و بدون خطایی برگشته است .
دیتابیس مورد نظر من دیتابیس فروم است :
www.yarantoos.com/forum
مشکل من سر یونیکد است که دیتابیس اصلی که یونیکد بوده خراب شده و پست افراد بشکلی است که می بینید ...

adnan
شنبه 03 اردیبهشت 1384, 12:55 عصر
آها نکته دیگر اینکه من اون قضیه کاربرانی که برای دیتابیس تعریف شده را لحاظ کردم و اون نکته ای که شما اشاره کردید را انجام داده بودم .

من فکر کنم چون با SSH اینکارو کردم و محیط کاری مناسبی برای بازگردانی دیتابیس نبود و data های یونیکد شده بدرستی منتقل نشده است .

یکی از دوستان برنامه mysql front را برای اینکار به من پیشنهاد کرده است ..

oxygenws
شنبه 03 اردیبهشت 1384, 22:59 عصر
آیا سیکوئل ساخت جداول در فایل سیکوئل شما وجود داره؟؟

اگر چنین بود، تمام جداولی که تا الان ساختید رو پاک کنید و دستور زیر رو در خط فرمان ----لینوکس---- وارد کنید (خط فرمان خود mysql نباشه هاا)

mysql db_name < filename.sql

موفق باشید، امید

adnan
یک شنبه 25 اردیبهشت 1384, 09:44 صبح
در ابتدای ساخت هر جدول چنین کدی دارد :


--
-- Host: localhost Database: yaran_xmb1
-- ------------------------------------------------------
-- Server version 4.1.10a-standard

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

--
-- Table structure for table `phpbb_auth_access`
--

که با هر چی می خواهم اجراش کنم خطا می گیره !
این کدها ابتدای جدول چه معنی میده ؟؟؟

ضمنا آخر تعریف هر جدول هم چنین کدی داره که از آن هم خظا می گیره :


ENGINE=MyISAM DEFAULT CHARSET=latin1;

oxygenws
سه شنبه 27 اردیبهشت 1384, 12:32 عصر
عدنان جان، همونطور که حضوری کد هات رو دیدم، ظاهرا کلا نسخه پشتیبان، بد تهیه شده و مخدوشه :)
(اینو فقط نوشتم که مابقی دوستان که میبینند، بفهمند :) )

adnan
پنج شنبه 14 مهر 1384, 16:37 عصر
امید جان !

الان به این نتیجه رسیدم که آن نسخه های Backup مخدوش نبودند .

الان که سرور به mysql 4.1 آپگرید شده اصلا نمی توان با phpmyadmin backup تهیه کرد .

با انکدینگی خروجی میده که با هیچ ادیتوری نمیشه بازش کرد !!!!