رفتن به مطلب

درخواست دستور کوئری کپی از کل دیتابیس از داخل بخش پشتیبانی IPS یا با php


ارسال‌های توصیه شده

باسلام وخسته نباشید خدمت اعضای محترم انجمن 

 

به یک مشکلی برخورده ام که دیتابیس  IPS را در phpmyadmin  بجای یک جدول دیگر اشتباها حذف کرده ام 

ولی خوشبختانه درکش سیستم بصورت مخفی باقی مانده ، امکان بازگردان بک آپ و... هم نیست چون خبرنداشتم حذفش کرده ام و کلی تغییرات درتالارها ایجاد کرده ام که در بک آپ موجود نیست 

چون هاست اشتراکی هست امکان استفاده از کدهای لینوکس نبوده ودسترسی ssh بهم نمیدن، خود هاستینگ هم مسئله رو از سرش وا میکنه و کمک نمیکنه وصرفا پیشنهاد بازگرداندن بک آپ رو میکنه 

 

فقط یک راه به ذهنم میاد آنهم اینکه چون الان تالارها و کاربران ودسترسی ها وکلا دیتابیس مخفی توسط IPS قابل دسترس هست و باهمان دیتابیس مخفی داره بدون خطا کارمیکنه 

از بخش دستورات کوئری داخل بخش مدیریت IPS دستور کپی و پشتیبان گیری دیتابیس رو بدهم و سپس اون کپی رو به هاستم منتقل کنم 

میتونید در نوشتن دستور کوئری برای چنین کاری کمکم کنید؟

ضمنا با xenforo دربخش تبدیل IPS به xenforo آن سی ام اس تونستم بخشی از اطلاعات  این دیتابیس مخفی رو دریافت و تبدیل کنم ولی کمی تغییراتش دادکه مطلوب نبود.

 

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 11 ساعت قبل، نورنما گفته است :

باسلام وخسته نباشید خدمت اعضای محترم انجمن 

 

به یک مشکلی برخورده ام که دیتابیس  IPS را در phpmyadmin  بجای یک جدول دیگر اشتباها حذف کرده ام 

ولی خوشبختانه درکش سیستم بصورت مخفی باقی مانده ، امکان بازگردان بک آپ و... هم نیست چون خبرنداشتم حذفش کرده ام و کلی تغییرات درتالارها ایجاد کرده ام که در بک آپ موجود نیست 

چون هاست اشتراکی هست امکان استفاده از کدهای لینوکس نبوده ودسترسی ssh بهم نمیدن، خود هاستینگ هم مسئله رو از سرش وا میکنه و کمک نمیکنه وصرفا پیشنهاد بازگرداندن بک آپ رو میکنه 

 

فقط یک راه به ذهنم میاد آنهم اینکه چون الان تالارها و کاربران ودسترسی ها وکلا دیتابیس مخفی توسط IPS قابل دسترس هست و باهمان دیتابیس مخفی داره بدون خطا کارمیکنه 

از بخش دستورات کوئری داخل بخش مدیریت IPS دستور کپی و پشتیبان گیری دیتابیس رو بدهم و سپس اون کپی رو به هاستم منتقل کنم 

میتونید در نوشتن دستور کوئری برای چنین کاری کمکم کنید؟

ضمنا با xenforo دربخش تبدیل IPS به xenforo آن سی ام اس تونستم بخشی از اطلاعات  این دیتابیس مخفی رو دریافت و تبدیل کنم ولی کمی تغییراتش دادکه مطلوب نبود.

 

 

 

ببینید کار با دیتابیس کمی دشوار هست و باید حتما دوره دیده باشید بخصوص دوره SQL که دستور کوئری هم خیلی حساس هست و ممکنه بجای تغییرات با کلی ارور مواجه بشه که باید این جور موارد را به دست یک برنامه نویس بک اند یا کسی که وارد هست بسپارید | ضمن اینکه اگه هنوز در کش هست و کار میکند توصیه میکنم یه بک آپ بگیرید از قسمت PHP MY ADMIN

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 6 دی 1398 در 14:22، CHRIS-7 گفته است :

ببینید کار با دیتابیس کمی دشوار هست و باید حتما دوره دیده باشید بخصوص دوره SQL که دستور کوئری هم خیلی حساس هست و ممکنه بجای تغییرات با کلی ارور مواجه بشه که باید این جور موارد را به دست یک برنامه نویس بک اند یا کسی که وارد هست بسپارید | ضمن اینکه اگه هنوز در کش هست و کار میکند توصیه میکنم یه بک آپ بگیرید از قسمت PHP MY ADMIN

 

بزرگوار ! اینقدرا که شما خیال میکنید هم پیاده نیستیم که اینقدر پیام دلسوزانه فرستاده اید! 

 

ضمن اینکه شما مثل اینکه دقت در متن سوال نداشتید یا درخواست بنده رو مشاهده نفرموده اید!اصلا دیتابیس مذکور در phpmyadmin قابل مشاهده نبود....

حتی در  MySQL  Databases و...  در سی پنل هم حذف شده بود و قابل مشاهده نبود!

جوابی مشکل گشا ازاینجا نیامد!ناچارا دیشب رفتم از  سایت گیت هاب کدی که مشکلمو برطرف میکرد رو پیداکردم و کل دیتابیس مخفی رو باهاش آپلود کردم !

 

کد رو دراینجا قرار میدهم که اگر احیانا کسی لازم داشت که از کل دیتابیسش با کدهای php بکآپ وخروجی بگیره ، باهمین کدها به راحتی میتونه با نوشتن نام یوزر ودیتابیس و رمزش در سطر دوم کدها، از دیتابیسش خروجی بگیره .

 

<?php
   EXPORT_DATABASE("localhost","user","pass","db_name" );

/* 
##### EXAMPLE #####
   EXPORT_DATABASE("localhost","user","pass","db_name" );
##### Notes #####
     * (optional) 5th parameter: to backup specific tables only,like: array("mytable1","mytable2",...)   
     * (optional) 6th parameter: backup filename (otherwise, it creates random name)
     * IMPORTANT NOTE ! Many people replaces strings in SQL file, which is not recommended. READ THIS:  http://itask.software/tools/wordpress-migrator
     * If you need, you can check "import.php" too
*/





function EXPORT_DATABASE($host,$user,$pass,$name,       $tables=false, $backup_name=false)
{ 
	set_time_limit(3000); $mysqli = new mysqli($host,$user,$pass,$name); $mysqli->select_db($name); $mysqli->query("SET NAMES 'utf8'");
	$queryTables = $mysqli->query('SHOW TABLES'); while($row = $queryTables->fetch_row()) { $target_tables[] = $row[0]; }	if($tables !== false) { $target_tables = array_intersect( $target_tables, $tables); } 
	$content = "SET SQL_MODE = \"NO_AUTO_VALUE_ON_ZERO\";\r\nSET time_zone = \"+00:00\";\r\n\r\n\r\n/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;\r\n/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;\r\n/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;\r\n/*!40101 SET NAMES utf8 */;\r\n--\r\n-- Database: `".$name."`\r\n--\r\n\r\n\r\n";
	foreach($target_tables as $table){
		if (empty($table)){ continue; } 
		$result	= $mysqli->query('SELECT * FROM `'.$table.'`');  	$fields_amount=$result->field_count;  $rows_num=$mysqli->affected_rows; 	$res = $mysqli->query('SHOW CREATE TABLE '.$table);	$TableMLine=$res->fetch_row(); 
		$content .= "\n\n".$TableMLine[1].";\n\n";   $TableMLine[1]=str_ireplace('CREATE TABLE `','CREATE TABLE IF NOT EXISTS `',$TableMLine[1]);
		for ($i = 0, $st_counter = 0; $i < $fields_amount;   $i++, $st_counter=0) {
			while($row = $result->fetch_row())	{ //when started (and every after 100 command cycle):
				if ($st_counter%100 == 0 || $st_counter == 0 )	{$content .= "\nINSERT INTO ".$table." VALUES";}
					$content .= "\n(";    for($j=0; $j<$fields_amount; $j++){ $row[$j] = str_replace("\n","\\n", addslashes($row[$j]) ); if (isset($row[$j])){$content .= '"'.$row[$j].'"' ;}  else{$content .= '""';}	   if ($j<($fields_amount-1)){$content.= ',';}   }        $content .=")";
				//every after 100 command cycle [or at last line] ....p.s. but should be inserted 1 cycle eariler
				if ( (($st_counter+1)%100==0 && $st_counter!=0) || $st_counter+1==$rows_num) {$content .= ";";} else {$content .= ",";}	$st_counter=$st_counter+1;
			}
		} $content .="\n\n\n";
	}
	$content .= "\r\n\r\n/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;\r\n/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;\r\n/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;";
	$backup_name = $backup_name ? $backup_name : $name.'___('.date('H-i-s').'_'.date('d-m-Y').').sql';
	ob_get_clean(); header('Content-Type: application/octet-stream');  header("Content-Transfer-Encoding: Binary");  header('Content-Length: '. (function_exists('mb_strlen') ? mb_strlen($content, '8bit'): strlen($content)) );    header("Content-disposition: attachment; filename=\"".$backup_name."\""); 
	echo $content; exit;
}




?>

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...