最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

推薦沒(méi)有虛擬主機(jī)的小巧的Mysql數(shù)據(jù)庫(kù)備份腳本(PHP)

 更新時(shí)間:2007年07月29日 16:20:41   作者:  

最近工作中常常需要備份遠(yuǎn)程服務(wù)器上的Mysql數(shù)據(jù)庫(kù)到本機(jī),一開(kāi)始采用直接備份Mysql的data目錄的辦法,但由于編碼不同的原因經(jīng)常產(chǎn)生問(wèn)題。后來(lái)朋友推薦我使用一個(gè)非常方便小巧的PHP程序——MyDB。一共包含三個(gè)文件:

1. mydb.php //DB類(lèi)

復(fù)制代碼 代碼如下:

<?
class db{

var $linkid;
var $sqlid;
var $record;

function db($host="",$username="",$password="",$database="")
    {
    if(!$this->linkid)  @$this->linkid = mysql_connect($host, $username, $password) or die("連接服務(wù)器失敗.");
    @mysql_select_db($database,$this->linkid) or die("無(wú)法打開(kāi)數(shù)據(jù)庫(kù)");
    return $this->linkid;}

function query($sql)
    {if($this->sqlid=mysql_query($sql,$this->linkid)) return $this->sqlid;
    else {
        $this->err_report($sql,mysql_error);
    return false;}
    }

function nr($sql_id="")
    {if(!$sql_id) $sql_id=$this->sqlid;
    return mysql_num_rows($sql_id);}

function nf($sql_id="")
    {if(!$sql_id) $sql_id=$this->sqlid;
    return mysql_num_fields($sql_id);}

function nextrecord($sql_id="")
    {if(!$sql_id) $sql_id=$this->sqlid;
    if($this->record=mysql_fetch_array($sql_id))  return $this->record;
    else return false;
    }

function f($name)
    {
    if($this->record[$name]) return $this->record[$name];
    else return false;
    }

function close() {mysql_close($this->linkid);}

function lock($tblname,$op="WRITE")
    {if(mysql_query("lock tables ".$tblname." ".$op)) return true; else return false;}

function unlock()
    {if(mysql_query("unlock tables")) return true; else return false;}

function ar() {
    return @mysql_affected_rows($this->linkid);
  }

function i_id() {
        return mysql_insert_id();
    }

function err_report($sql,$err)
    {
echo "Mysql查詢(xún)錯(cuò)誤<br>";
echo "查詢(xún)語(yǔ)句:".$sql."<br>";
echo "錯(cuò)誤信息:".$err;
    }
/****************************************類(lèi)結(jié)束***************************/
}?>

2. backup.php //備份腳本
復(fù)制代碼 代碼如下:

<?
global $mysqlhost, $mysqluser, $mysqlpwd, $mysqldb;
$mysqlhost="localhost"; //host name
$mysqluser="root";              //login name
$mysqlpwd="";              //password
$mysqldb="";        //name of database

include("mydb.php");
$d=new db($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);
/*--------------界面--------------*/if(!$_POST['act']){/*----------------------*/
$msgs[]="服務(wù)器備份目錄為backup";
$msgs[]="對(duì)于較大的數(shù)據(jù)表,強(qiáng)烈建議使用分卷備份";
$msgs[]="只有選擇備份到服務(wù)器,才能使用分卷備份功能";
show_msg($msgs);
?>
<form name="form1" method="post" action="backup.php">
  <table width="99%" border="1" cellpadding='0' cellspacing='1'>
    <tr align="center" class='header'><td colspan="2">數(shù)據(jù)備份</td></tr>
    <tr><td colspan="2">備份方式</td></tr>
    <tr><td><input type="radio" name="bfzl" value="quanbubiao">        備份全部數(shù)據(jù)</td><td>備份全部數(shù)據(jù)表中的數(shù)據(jù)到一個(gè)備份文件</td></tr>
    <tr><td><input type="radio" name="bfzl" value="danbiao">備份單張表數(shù)據(jù) 
        <select name="tablename"><option value="">請(qǐng)選擇</option>
          <?
        $d->query("show table status from $mysqldb");
        while($d->nextrecord()){
        echo "<option value='".$d->f('Name')."'>".$d->f('Name')."</option>";}
        ?>
        </select></td><td>備份選中數(shù)據(jù)表中的數(shù)據(jù)到單獨(dú)的備份文件</td></tr>
    <tr><td colspan="2">使用分卷備份</td></tr>
    <tr><td colspan="2"><input type="checkbox" name="fenjuan" value="yes">
        分卷備份 <input name="filesize" type="text" size="10">K</td></tr>
    <tr><td colspan="2">選擇目標(biāo)位置</td></tr>
    <tr><td colspan="2"><input type="radio" name="weizhi" value="server" checked>備份到服務(wù)器</td></tr><tr class="cells"><td colspan='2'> <input type="radio" name="weizhi" value="localpc">
        備份到本地</td></tr>
    <tr><td colspan="2" align='center'><input type="submit" name="act" value="備份"></td></tr>
  </table></form>
<?/*-------------界面結(jié)束-------------*/}/*---------------------------------*/
/*----*/else{/*--------------主程序-----------------------------------------*/
if($_POST['weizhi']=="localpc"&&$_POST['fenjuan']=='yes')
    {$msgs[]="只有選擇備份到服務(wù)器,才能使用分卷備份功能";
show_msg($msgs); pageend();}
if($_POST['fenjuan']=="yes"&&!$_POST['filesize'])
    {$msgs[]="您選擇了分卷備份功能,但未填寫(xiě)分卷文件大小";
show_msg($msgs); pageend();}
if($_POST['weizhi']=="server"&&!writeable("./backup"))
    {$msgs[]="備份文件存放目錄'./backup'不可寫(xiě),請(qǐng)修改目錄屬性";
show_msg($msgs); pageend();}

/*----------備份全部表-------------*/if($_POST['bfzl']=="quanbubiao"){/*----*/
/*----不分卷*/if(!$_POST['fenjuan']){/*--------------------------------*/
if(!$tables=$d->query("show table status from $mysqldb"))
    {$msgs[]="讀數(shù)據(jù)庫(kù)結(jié)構(gòu)錯(cuò)誤"; show_msg($msgs); pageend();}
$sql="";
while($d->nextrecord($tables))
    {
    $table=$d->f("Name");
    $sql.=make_header($table);
    $d->query("select * from $table");
    $num_fields=$d->nf();
    while($d->nextrecord())
    {$sql.=make_record($table,$num_fields);}
    }
$filename=date("Ymd",time())."_all.sql";
if($_POST['weizhi']=="localpc") down_file($sql,$filename);
elseif($_POST['weizhi']=="server")
    {if(write_file($sql,$filename))
$msgs[]="全部數(shù)據(jù)表數(shù)據(jù)備份完成,生成備份文件'./backup/$filename'";
    else $msgs[]="備份全部數(shù)據(jù)表失敗";
    show_msg($msgs);
    pageend();
    }
/*-----------------不要卷結(jié)束*/}/*-----------------------*/
/*-----------------分卷*/else{/*-------------------------*/
if(!$_POST['filesize'])
    {$msgs[]="請(qǐng)?zhí)顚?xiě)備份文件分卷大小"; show_msg($msgs);pageend();}
if(!$tables=$d->query("show table status from $mysqldb"))
    {$msgs[]="讀數(shù)據(jù)庫(kù)結(jié)構(gòu)錯(cuò)誤"; show_msg($msgs); pageend();}
$sql=""; $p=1;
$filename=date("Ymd",time())."_all";
while($d->nextrecord($tables))
{
    $table=$d->f("Name");
    $sql.=make_header($table);
    $d->query("select * from $table");
    $num_fields=$d->nf();
    while($d->nextrecord())
    {$sql.=make_record($table,$num_fields);
    if(strlen($sql)>=$_POST['filesize']*1000){
            $filename.=("_v".$p.".sql");
            if(write_file($sql,$filename))
            $msgs[]="全部數(shù)據(jù)表-卷-".$p."-數(shù)據(jù)備份完成,生成備份文件'./backup/$filename'";
            else $msgs[]="備份表-".$_POST['tablename']."-失敗";
            $p++;
            $filename=date("Ymd",time())."_all";
            $sql="";}
    }
}
if($sql!=""){$filename.=("_v".$p.".sql");        
if(write_file($sql,$filename))
$msgs[]="全部數(shù)據(jù)表-卷-".$p."-數(shù)據(jù)備份完成,生成備份文件'./backup/$filename'";}
show_msg($msgs);
/*---------------------分卷結(jié)束*/}/*--------------------------------------*/
/*--------備份全部表結(jié)束*/}/*---------------------------------------------*/

/*--------備份單表------*/elseif($_POST['bfzl']=="danbiao"){/*------------*/
if(!$_POST['tablename'])
    {$msgs[]="請(qǐng)選擇要備份的數(shù)據(jù)表"; show_msg($msgs); pageend();}
/*--------不分卷*/if(!$_POST['fenjuan']){/*-------------------------------*/
$sql=make_header($_POST['tablename']);
$d->query("select * from ".$_POST['tablename']);
$num_fields=$d->nf();
while($d->nextrecord())
    {$sql.=make_record($_POST['tablename'],$num_fields);}
$filename=date("Ymd",time())."_".$_POST['tablename'].".sql";
if($_POST['weizhi']=="localpc") down_file($sql,$filename);
elseif($_POST['weizhi']=="server")
    {if(write_file($sql,$filename))
$msgs[]="表-".$_POST['tablename']."-數(shù)據(jù)備份完成,生成備份文件'./backup/$filename'";
    else $msgs[]="備份表-".$_POST['tablename']."-失敗";
    show_msg($msgs);
    pageend();
    }
/*----------------不要卷結(jié)束*/}/*------------------------------------*/
/*----------------分卷*/else{/*--------------------------------------*/
if(!$_POST['filesize'])
    {$msgs[]="請(qǐng)?zhí)顚?xiě)備份文件分卷大小"; show_msg($msgs);pageend();}
$sql=make_header($_POST['tablename']); $p=1; 
    $filename=date("Ymd",time())."_".$_POST['tablename'];
    $d->query("select * from ".$_POST['tablename']);
    $num_fields=$d->nf();
    while ($d->nextrecord()) 
    {    
        $sql.=make_record($_POST['tablename'],$num_fields);
       if(strlen($sql)>=$_POST['filesize']*1000){
            $filename.=("_v".$p.".sql");
            if(write_file($sql,$filename))
            $msgs[]="表-".$_POST['tablename']."-卷-".$p."-數(shù)據(jù)備份完成,生成備份文件'./backup/$filename'";
            else $msgs[]="備份表-".$_POST['tablename']."-失敗";
            $p++;
            $filename=date("Ymd",time())."_".$_POST['tablename'];
            $sql="";}
    }
if($sql!=""){$filename.=("_v".$p.".sql");        
if(write_file($sql,$filename))
$msgs[]="表-".$_POST['tablename']."-卷-".$p."-數(shù)據(jù)備份完成,生成備份文件'./backup/$filename'";}
show_msg($msgs);
/*----------分卷結(jié)束*/}/*--------------------------------------------------*/
/*----------備份單表結(jié)束*/}/*----------------------------------------------*/

/*---*/}/*-------------主程序結(jié)束------------------------------------------*/

function write_file($sql,$filename)
{
$re=true;
if(!@$fp=fopen("./backup/".$filename,"w+")) {$re=false; echo "failed to open target file";}
if(!@fwrite($fp,$sql)) {$re=false; echo "failed to write file";}
if(!@fclose($fp)) {$re=false; echo "failed to close target file";}
return $re;
}

function down_file($sql,$filename)
{
    ob_end_clean();
    header("Content-Encoding: none");
    header("Content-Type: ".(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? 'application/octetstream' : 'application/octet-stream'));

    header("Content-Disposition: ".(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? 'inline; ' : 'attachment; ')."filename=".$filename);

    header("Content-Length: ".strlen($sql));
    header("Pragma: no-cache");

    header("Expires: 0");
    echo $sql;
    $e=ob_get_contents();
    ob_end_clean();
}

function writeable($dir)
{

    if(!is_dir($dir)) {
    @mkdir($dir, 0777);
    }

    if(is_dir($dir)) 
    {

    if($fp = @fopen("$dir/test.test", 'w'))
        {
@fclose($fp);
    @unlink("$dir/test.test");
    $writeable = 1;

    else {
$writeable = 0;
    }

}

    return $writeable;

}

function make_header($table)
{global $d;
$sql="DROP TABLE IF EXISTS ".$table."\n";
$d->query("show create table ".$table);
$d->nextrecord();
$tmp=preg_replace("/\n/","",$d->f("Create Table"));
$sql.=$tmp."\n";
return $sql;
}

function make_record($table,$num_fields)
{global $d;
$comma="";
$sql .= "INSERT INTO ".$table." VALUES(";
for($i = 0; $i < $num_fields; $i++) 
{$sql .= ($comma."'".mysql_escape_string($d->record[$i])."'"); $comma = ",";}
$sql .= ")\n";
return $sql;
}

function show_msg($msgs)
{
$title="提示:";
echo "<table width='100%' border='1'  cellpadding='0' cellspacing='1'>";
echo "<tr><td>".$title."</td></tr>";
echo "<tr><td><br><ul>";
while (list($k,$v)=each($msgs))
    {
    echo "<li>".$v."</li>";
    }
echo "</ul></td></tr></table>";
}

function pageend()
{
exit();
}
?>


3. restore.php //還原腳本
復(fù)制代碼 代碼如下:

<?
session_start();
global $mysqlhost, $mysqluser, $mysqlpwd, $mysqldb;
$mysqlhost="localhost"; //host name
$mysqluser="root";              //login name
$mysqlpwd="";              //password
$mysqldb="";        //name of database

include("mydb.php");
$d=new db($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);

/******界面*/if(!$_POST['act']&&!$_SESSION['data_file']){/**********************/
$msgs[]="本功能在恢復(fù)備份數(shù)據(jù)的同時(shí),將全部覆蓋原有數(shù)據(jù),請(qǐng)確定是否需要恢復(fù),以免造成數(shù)據(jù)損失";
$msgs[]="數(shù)據(jù)恢復(fù)功能只能恢復(fù)由dShop導(dǎo)出的數(shù)據(jù)文件,其他軟件導(dǎo)出格式可能無(wú)法識(shí)別";
$msgs[]="從本地恢復(fù)數(shù)據(jù)需要服務(wù)器支持文件上傳并保證數(shù)據(jù)尺寸小于允許上傳的上限,否則只能使用從服務(wù)器恢復(fù)";
$msgs[]="如果您使用了分卷備份,只需手工導(dǎo)入文件卷1,其他數(shù)據(jù)文件會(huì)由系統(tǒng)自動(dòng)導(dǎo)入";
show_msg($msgs);
?>
<form action="" method="post" enctype="multipart/form-data" name="restore.php">
<table width="91%" border="0" cellpadding="0" cellspacing="1">
<tr align="center" class="header"><td colspan="2" align="center">數(shù)據(jù)恢復(fù)</td></tr>
<tr><td width="33%"><input type="radio" name="restorefrom" value="server" checked>
從服務(wù)器文件恢復(fù) </td><td width="67%"><select name="serverfile">
    <option value="">-請(qǐng)選擇-</option>
<?
$handle=opendir('./backup');
while ($file = readdir($handle)) {
    if(eregi("^[0-9]{8,8}([0-9a-z_]+)(\.sql)$",$file)) echo "<option value='$file'>$file</option>";}
closedir($handle); 
?>
  </select> </td></tr>
<tr><td><input type="radio" name="restorefrom" value="localpc">       從本地文件恢復(fù)</td>
<td><input type="hidden" name="MAX_FILE_SIZE" value="1500000"><input type="file" name="myfile"></td></tr>
<tr><td colspan="2" align="center"> <input type="submit" name="act" value="恢復(fù)"></td>  </tr></table></form>


<?/**************************界面結(jié)束*/}/*************************************/
/****************************主程序*/if($_POST['act']=="恢復(fù)"){/**************/
/***************服務(wù)器恢復(fù)*/if($_POST['restorefrom']=="server"){/**************/
if(!$_POST['serverfile'])
    {$msgs[]="您選擇從服務(wù)器文件恢復(fù)備份,但沒(méi)有指定備份文件";
     show_msg($msgs); pageend();    }
if(!eregi("_v[0-9]+",$_POST['serverfile']))
    {$filename="./backup/".$_POST['serverfile'];
    if(import($filename)) $msgs[]="備份文件".$_POST['serverfile']."成功導(dǎo)入數(shù)據(jù)庫(kù)";
    else $msgs[]="備份文件".$_POST['serverfile']."導(dǎo)入失敗";
    show_msg($msgs); pageend();        
    }
else
    {
    $filename="./backup/".$_POST['serverfile'];
    if(import($filename)) $msgs[]="備份文件".$_POST['serverfile']."成功導(dǎo)入數(shù)據(jù)庫(kù)";
    else {$msgs[]="備份文件".$_POST['serverfile']."導(dǎo)入失敗";show_msg($msgs);pageend();}
    $voltmp=explode("_v",$_POST['serverfile']);
    $volname=$voltmp[0];
    $volnum=explode(".sq",$voltmp[1]);
    $volnum=intval($volnum[0])+1;
    $tmpfile=$volname."_v".$volnum.".sql";
    if(file_exists("./backup/".$tmpfile))
        {
        $msgs[]="程序?qū)⒃?秒鐘后自動(dòng)開(kāi)始導(dǎo)入此分卷備份的下一部份:文件".$tmpfile.",請(qǐng)勿手動(dòng)中止程序的運(yùn)行,以免數(shù)據(jù)庫(kù)結(jié)構(gòu)受損";
        $_SESSION['data_file']=$tmpfile;
        show_msg($msgs);
        sleep(3);
        echo "<script language='javascript'>"; 
        echo "location='restore.php';"; 
        echo "</script>"; 
        }
    else
        {
        $msgs[]="此分卷備份全部導(dǎo)入成功";
        show_msg($msgs);
        }
    }
/**************服務(wù)器恢復(fù)結(jié)束*/}/********************************************/
/*****************本地恢復(fù)*/if($_POST['restorefrom']=="localpc"){/**************/
    switch ($_FILES['myfile']['error'])
    {
    case 1:
    case 2:
    $msgs[]="您上傳的文件大于服務(wù)器限定值,上傳未成功";
    break;
    case 3:
    $msgs[]="未能從本地完整上傳備份文件";
    break;
    case 4:
    $msgs[]="從本地上傳備份文件失敗";
    break;
    case 0:
    break;
    }
    if($msgs){show_msg($msgs);pageend();}
$fname=date("Ymd",time())."_".sjs(5).".sql";
if (is_uploaded_file($_FILES['myfile']['tmp_name'])) {
    copy($_FILES['myfile']['tmp_name'], "./backup/".$fname);}

if (file_exists("./backup/".$fname)) 
    {
    $msgs[]="本地備份文件上傳成功";
    if(import("./backup/".$fname)) {$msgs[]="本地備份文件成功導(dǎo)入數(shù)據(jù)庫(kù)"; unlink("./backup/".$fname);}
    else $msgs[]="本地備份文件導(dǎo)入數(shù)據(jù)庫(kù)失敗";
    }
else ($msgs[]="從本地上傳備份文件失敗");
show_msg($msgs);
/****本地恢復(fù)結(jié)束*****/}/****************************************************/
/****************************主程序結(jié)束*/}/**********************************/
/*************************剩余分卷備份恢復(fù)**********************************/
if(!$_POST['act']&&$_SESSION['data_file'])
{
    $filename="./backup/".$_SESSION['data_file'];
    if(import($filename)) $msgs[]="備份文件".$_SESSION['data_file']."成功導(dǎo)入數(shù)據(jù)庫(kù)";
    else {$msgs[]="備份文件".$_SESSION['data_file']."導(dǎo)入失敗";show_msg($msgs);pageend();}
    $voltmp=explode("_v",$_SESSION['data_file']);
    $volname=$voltmp[0];
    $volnum=explode(".sq",$voltmp[1]);
    $volnum=intval($volnum[0])+1;
    $tmpfile=$volname."_v".$volnum.".sql";
    if(file_exists("./backup/".$tmpfile))
        {
        $msgs[]="程序?qū)⒃?秒鐘后自動(dòng)開(kāi)始導(dǎo)入此分卷備份的下一部份:文件".$tmpfile.",請(qǐng)勿手動(dòng)中止程序的運(yùn)行,以免數(shù)據(jù)庫(kù)結(jié)構(gòu)受損";
        $_SESSION['data_file']=$tmpfile;
        show_msg($msgs);
        sleep(3);
        echo "<script language='javascript'>"; 
        echo "location='restore.php';"; 
        echo "</script>"; 
        }
    else
        {
        $msgs[]="此分卷備份全部導(dǎo)入成功";
        unset($_SESSION['data_file']);
        show_msg($msgs);
        }
}
/**********************剩余分卷備份恢復(fù)結(jié)束*******************************/
function import($fname)
{global $d;
$sqls=file($fname);
foreach($sqls as $sql)
    {
    str_replace("\r","",$sql);
    str_replace("\n","",$sql);
    if(!$d->query(trim($sql))) return false;
    }
return true;
}
function show_msg($msgs)
{
$title="提示:";
echo "<table width='100%' border='1'  cellpadding='0' cellspacing='1'>";
echo "<tr><td>".$title."</td></tr>";
echo "<tr><td><br><ul>";
while (list($k,$v)=each($msgs))
    {
    echo "<li>".$v."</li>";
    }
echo "</ul></td></tr></table>";
}

function pageend()
{
exit();
}
?>

文件結(jié)構(gòu)非常清晰,只要在文件2和3里面設(shè)置好數(shù)據(jù)庫(kù)服務(wù)器的地址、用戶(hù)名、密碼就可以備份還原數(shù)據(jù)了。需要注意的是:

·使用時(shí)候要在同級(jí)目錄下建一個(gè)Backup目錄,權(quán)限需要可寫(xiě),用于存放導(dǎo)出的腳本。
·當(dāng)備份的數(shù)據(jù)庫(kù)比較大的時(shí)候,服務(wù)器腳本超時(shí)時(shí)間要調(diào)大一些。
·支持分卷備份,還原時(shí)候只要選擇分卷備份的第一個(gè)腳本就會(huì)自動(dòng)還原所有的腳本。
·分卷文件大小不要太大,最好不超過(guò)2MB。
·安全起見(jiàn),腳本不用時(shí)候記得從服務(wù)器上刪除。

打包文件下載

相關(guān)文章

  • MySQL視圖簡(jiǎn)介及基本操作教程

    MySQL視圖簡(jiǎn)介及基本操作教程

    這篇文章主要給大家介紹了關(guān)于MySQL視圖簡(jiǎn)介及基本操作的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • mysql8.0.11安裝配置方法圖文教程 MySQL8.0新密碼認(rèn)證方式

    mysql8.0.11安裝配置方法圖文教程 MySQL8.0新密碼認(rèn)證方式

    這篇文章主要為大家詳細(xì)介紹了mysql8.0.11安裝配置方法圖文教程,以及MySQL8.0新密碼認(rèn)證方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • MySQL中常見(jiàn)的八種SQL錯(cuò)誤用法示例

    MySQL中常見(jiàn)的八種SQL錯(cuò)誤用法示例

    這篇文章主要給大家介紹了關(guān)于MySQL中常見(jiàn)的八種SQL錯(cuò)誤用法示例的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 在同一Linux下安裝兩個(gè)版本的MySQL的流程步驟

    在同一Linux下安裝兩個(gè)版本的MySQL的流程步驟

    打工人奉旨制作數(shù)據(jù)庫(kù)服務(wù)的虛擬機(jī)模板,模板中包含各種數(shù)據(jù)庫(kù),其中mysql需要具備5.7及8.0兩個(gè)版本,并保證服務(wù)能正常同時(shí)使用,所以本文給小編介紹了在同一Linux下安裝兩個(gè)版本的MySQL的流程步驟,需要的朋友可以參考下
    2024-03-03
  • MYSQL SET類(lèi)型字段的SQL操作知識(shí)介紹

    MYSQL SET類(lèi)型字段的SQL操作知識(shí)介紹

    本篇文章是對(duì)MYSQL中SET類(lèi)型字段的SQL操作知識(shí)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • mysql線(xiàn)上查詢(xún)之前要性能調(diào)優(yōu)的技巧及示例

    mysql線(xiàn)上查詢(xún)之前要性能調(diào)優(yōu)的技巧及示例

    文章介紹了查詢(xún)優(yōu)化的幾種方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查詢(xún)和派生表的優(yōu)化、查詢(xún)提示和優(yōu)化器提示等,這些方法可以幫助提高數(shù)據(jù)庫(kù)性能,減少查詢(xún)的執(zhí)行時(shí)間和資源消耗,感興趣的朋友一起看看吧
    2025-03-03
  • windows2008 64位系統(tǒng)下MySQL 5.7綠色版的安裝教程

    windows2008 64位系統(tǒng)下MySQL 5.7綠色版的安裝教程

    這篇文章主要給大家分享了在windows2008 64位系統(tǒng)下MySQL 5.7綠色版的安裝教程,文中將安裝步驟介紹的非常詳細(xì),相信會(huì)對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-05-05
  • MySQL索引結(jié)構(gòu)詳細(xì)解析

    MySQL索引結(jié)構(gòu)詳細(xì)解析

    MySQL官方對(duì)索引的定義為:索引(Index)是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。可以得到索引的本質(zhì):索引是數(shù)據(jù)結(jié)構(gòu)
    2022-03-03
  • 透徹理解Mysql連接的原理

    透徹理解Mysql連接的原理

    這篇文章主要為大家介紹了Mysql連接原理的深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • mysql出現(xiàn)ERROR 1819 (HY000)的解決方法

    mysql出現(xiàn)ERROR 1819 (HY000)的解決方法

    這篇文章主要為大家詳細(xì)介紹了mysql出現(xiàn)ERROR 1819 (HY000)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評(píng)論

新密市| 西乌| 新巴尔虎左旗| 南昌县| 庆城县| 永和县| 佛教| 平山县| 太仆寺旗| 连平县| 南乐县| 柏乡县| 化州市| 唐山市| 枝江市| 石嘴山市| 琼中| 夏津县| 易门县| 嫩江县| 来凤县| 金秀| 施甸县| 金乡县| 麟游县| 陈巴尔虎旗| 东源县| 江达县| 曲松县| 庄河市| 措美县| 安义县| 海门市| 龙游县| 浙江省| 浦江县| 满洲里市| 滕州市| 通州市| 建德市| 巴林左旗|