新聞中心
如何批量修改mysql的表前綴名稱
mysql數(shù)據(jù)庫表前綴,這個是我們區(qū)分其它表的一個方式,當(dāng)我們同一個數(shù)據(jù)庫中含有多個系統(tǒng)的的時候,表前綴就卻分的唯一標(biāo)識。我們使用php開源程序安裝建站的時候,一般數(shù)據(jù)庫表前綴都是默認(rèn)設(shè)置好的,如:wordpress的默認(rèn)數(shù)據(jù)庫表前綴是wp_,echosp的默認(rèn)數(shù)據(jù)庫表前綴是ecs_,discuz的默認(rèn)數(shù)據(jù)庫表前綴是pre_,織夢內(nèi)容管理系統(tǒng)(dede)的默認(rèn)數(shù)據(jù)庫表前綴是dede_。在其官方安裝教程中或開源系統(tǒng)安全安裝方法中,都建議在安裝的時候,建議修改這個天下人皆知的默認(rèn)表前綴。如果您不留神,已經(jīng)使用了默認(rèn)的表前綴怎么辦?有辦法改嗎?無憂主機(m.gle-technology.com)小編,今天就用ecshop網(wǎng)店開源系統(tǒng)演示,如何修改ecshop的mysql數(shù)據(jù)庫表前綴名。 涉及數(shù)據(jù)庫的修改都是要非常危險的,所以備份不可少。建議使用兩種以上的方法在php虛擬主機中備份你的網(wǎng)站數(shù)據(jù)庫。無憂主機空間的控制面板也提供備份功能,你可以參考“網(wǎng)站整站一鍵備份與恢復(fù)”。教程中將涉及兩種方法修改,一種是批量修改(使用php腳步完成)一種是精確修改(使用sql查詢語句完成)。 方法一:使用sql語句修改mysql數(shù)據(jù)庫表前綴名 首先我們想到的就是用sql查詢語句來修改,這個方法也很方便,只需進入無憂主機控制面板——phpmyadmin登入后,在運行 SQL 查詢框中輸入如下語名就可以了。 ALTER TABLE 原表名 RENAME TO 新表名; 如: ALTER TABLE old_post RENAME TO new_post; Sql查詢語句有一個缺點,那就是一句SQL語句只能修改一張數(shù)據(jù)庫的表名,如果你要精確修改某一張表,很好用。如果數(shù)據(jù)庫表很多的話,不推薦使用。有木有,批量修改多個數(shù)據(jù)庫表前綴名稱的方法類?有的,請看下面的介紹 方法二:php腳本批量修改mysql數(shù)據(jù)庫表前綴 下面無憂主機(m.gle-technology.com)小編收集的一個快速批量的修改數(shù)據(jù)表前綴的方法,小編已經(jīng)測試,成功修改。如果你需要,請參考借鑒如下: 1、將下面的代碼復(fù)制到記事本,根據(jù)自己人情況修改好數(shù)據(jù)庫信息,并保存了51php.php。再上傳您網(wǎng)站的根目錄。您可以直接下載mysql數(shù)據(jù)庫前綴名批量修改腳本:修改mysql數(shù)據(jù)庫表前綴名。
<?php //設(shè)置好相關(guān)信息 $dbserver='localhost';//連接的服務(wù)器一般為localhost $dbname='y8n9nghmze_shop';//數(shù)據(jù)庫名 $dbuser='y8n9nghmze_user';//數(shù)據(jù)庫用戶名 $dbpassword='admin';//數(shù)據(jù)庫密碼 $old_prefix='ecs_';//數(shù)據(jù)庫的前綴 $new_prefix='51php_';//數(shù)據(jù)庫的前綴修改為 if ( !is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) ) { return false; } if (!mysql_connect($dbserver, $dbuser, $dbpassword)) { print 'Could not connect to mysql'; exit; } //取得數(shù)據(jù)庫內(nèi)所有的表名 $result = mysql_list_tables($dbname); if (!$result) { print "DB Error, could not list tables\n"; print 'MySQL Error: ' . mysql_error(); exit; } //把表名存進$data while ($row = mysql_fetch_row($result)) { $data[] = $row[0]; } //過濾要修改前綴的表名 foreach($data as $k => $v) { $preg = preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i", $v, $v1); if($preg) { $tab_name[$k] = $v1[2]; //$tab_name[$k] = str_replace($old_prefix, '', $v); } } if($preg) { // echo '<pre>'; // print_r($tab_name); // exit(); //批量重命名 foreach($tab_name as $k => $v) { $sql = 'RENAME TABLE `'.$old_prefix.$v.'` TO `'.$new_prefix.$v.'`'; mysql_query($sql); } print 數(shù)據(jù)表前綴:.$old_prefix."<br>".已經(jīng)修改為:.$new_prefix."<br>"; } else { print 您的數(shù)據(jù)庫表的前綴.$old_prefix.輸入錯誤。請檢查相關(guān)的數(shù)據(jù)庫表的前綴; if ( mysql_free_result($result) ) { return true; } } ?>2、 在瀏覽器輸入訪問您的網(wǎng)址/51php.php.數(shù)據(jù)庫表的前綴就可以修改成功了。 2013年5月28日更新: 無憂主機小編(m.gle-technology.com)今天更新一個mysql數(shù)據(jù)庫表前綴的另一個方法,這個方法使用也非常簡單,就是用第三方工具——帝國備份王進行修改。操作方法如下: 1、登錄帝國備份后臺,選擇“備份數(shù)據(jù)”—— “批量替換表名”,然后執(zhí)行操作就可以完成批量替換了,也非常簡單。如下圖:
![201358](http://m.gle-technology.com/wp-content/uploads/2012/08/201358-150x150.jpg)
本文地址:http://m.gle-technology.com/mysql/7967.html
![1](/wp-content/themes/starow_z/img/o-1.png)
![1](/wp-content/themes/starow_z/img/o-2.png)
![1](/wp-content/themes/starow_z/img/o-3.png)
![1](/wp-content/themes/starow_z/img/o-4.png)
![1](/wp-content/themes/starow_z/img/o-5.png)
![1](/wp-content/themes/starow_z/img/o-6.png)
![1](/wp-content/themes/starow_z/img/o-7.png)