PDA

View Full Version : آپلود دیتابسی در mysql



houtanal
سه شنبه 31 شهریور 1383, 02:07 صبح
سلام
من می خواهم تعدادی جدول را از سیستم خودم به mysql هاستی که گرفتم منتقل کنم.با توجه به اینکه shell_exec در هاست من بسته است و در ضمن اتصال از طریق خود mysql به صورت ریموت به هاست هم ممکن نیست چه راهی دارم؟

مهدی کرامتی
سه شنبه 31 شهریور 1383, 02:15 صبح
در سیستم خود با استفاده از MySQLDump یک Dump از دیتابیس موجود بگیرید. مثلا بفرض اینکه نام دیتابیس لوکال تان Mehdi باشد:

mysqldump Mehdi > Mehdi.SQL
این کار باعث ایجاد یک کپی از ساختار دیتابیس مورد نظر بهمراه داده های کنونی خواهد شد. سپس این اسکریپت را در phpMyAdmin سایت تان اجرا کنید.

nematia
سه شنبه 31 شهریور 1383, 05:49 صبح
یک phpMyAdmin هم روی سیستم خودتان نصب کنید تا کارتان راحت تر شود.

houtanal
سه شنبه 31 شهریور 1383, 13:01 عصر
ممنون phpmyadmin و EMS mysql manager رو دارم از روش های بالا هم که گفتید امتحان کردم و موفق بود.
اما مشکل من اینجاست که من احتیاج دارم مثلا هر 12 ساعت این اطلاعات که بر روی intranet من قرار دارند به اینترنت (هاست) منتقل شوند.
یعنی دو نسخه از نرم افزار موجود است یکی نصب شده بر روی اینترانت و یکی بر روی هاست اینترنتی برای تعامل بین این دو من می توانم یک برنامه ساده بنویسم که یک سری داده رو به صورت اتوماتیک به سرور بفرستد.
مشکل از جایی شروع می شود که :
در صورتیکه بخواهم یک deamon بنویسم که بر روی سرور اینترانت فعال باشد و با تغییر و اطلاعات طی بازه زمان از پیش تعریف شده اطلاعات را به سرور اینترنتی بفرستد احتیاج به دسترسی به ssh دارم .که خوب در سرور موجود نمی باشد.راه دیگر تعامل با یک برنامه تحت وب بر روی پورت 80 است که خوب shell_exec بسته می باشد!
دقیقا مشکال همین جاست که باید یک جوری به deamon مای اسکیوئل نصب شده بر روی سرور دسترسی داشته باشم.
فکر می کنم تنها راه باقی مانده این است که برنامه ای بنویسم که اطلاعات را به صورت sql از دیتا بیس و جداول استخراج کرده و با یک اسکریپت سرور ساید و همان توابع معمول mysql که در پورت 80 منتظر درخواست هستند به بانک اضافه کنم.(می خواستم فایل ها رو کپی کنم که نمی شه :cry: )

oxygenws
سه شنبه 31 شهریور 1383, 13:16 عصر
از اونجایی که می گی دسترسی دور نداری، همونطور هم که خودت اشاره کردی، فکر کنم محکوم باشی یه برنامه ساده بسازی که به عنوان ورودی یک sql بگیره که خیلی خطرناکه، البته اگر قبلش نام کاربری و رمط عبور بگیره تا حدودی مشکل حل می شه.

houtanal
سه شنبه 31 شهریور 1383, 13:27 عصر
توی deamon مستقر بر روی اینترانت و برنامه کاربردی سرور ساید یک امضا (چیزی شبیه به SSL ) نعریف می کنم که به صورت هش شده بین این دو منتقل شود سپس در صورت درست بودن فرامین sql را می فرستم.در این صورت حتی اگر یک sniffer هم در بین راه باشد تنها فرامین sql را می بیند و در ضمن به علت وجود امضا نمی تواند داده ها را دستکاری کند.

oxygenws
سه شنبه 31 شهریور 1383, 13:47 عصر
خوبه، بسم الله :)

مهدی کرامتی
سه شنبه 31 شهریور 1383, 14:10 عصر
میتونید داده ها را بصورت XML مبادله کنید (با استفاده از Soap) و Web Services، و برای امنیت از امضای دیجیتالی استفاده کنید.

Inprise
سه شنبه 31 شهریور 1383, 14:32 عصر
وظایفی مثل این رو عموما" تو دستهء Replication ها طبقه بندی میکنن . میتونی از امکانات درون ساختهء MySQL برای انتقال دوره ای اطلاعات از اینترانت به اینترنت استفاده کنی که طبیعتا" باید بتونی از راه دور به سرویس MySQL اینترنت دسترسی داشته باشی .

Database Replication in MySQL (http://databasejournal.com/features/mysql/article.php/3355201)