關於數據庫表前綴的認識


zblogPHP默認安裝時,使用的是mysql數據庫,負載能力更強!

那么

1、配置的時候,如何設置數據庫表前綴呢?

2、兩個、多個zblogPHP如何安裝到同一個數據庫?

下方回答下這個疑問:

在安裝mysql時候會顯示配置頁面,如下圖:

zblogPHP教程 - mysql數據庫表前綴怎么寫?(兩個/多個zblogPHP安裝同一個數據庫) zblog模板學習 第1張

四個剪頭分別為: 數據庫用戶名、數據庫密碼、數據庫名、數據庫表前綴

最后一個大紅箭頭的就是安裝zblogPHP默認時的前綴了,默認一律為:zbp_ 

一般情況下如果一個mysql數據庫只安裝了一個zblogPHP,此時數據庫表前綴使用默認即可,但如果如上圖所示的數據庫為zblog內同時安裝了多個zblogPHP,此時這些表前綴就不能一樣了,否則會覆蓋掉其它一樣表前綴的zblogPHP數據,所以多個zblogPHP安裝在同一個數據庫內時必須在安裝的時候區分表前綴,比如使用域名簡寫,如果你的域名是baidu.com,可以考慮使用 baidu_ 作為表前綴!

 

下圖給大家看下我的一個theme數據庫內同時安裝了超過10個zblogPHP,表前綴都不一樣!

zblogPHP教程 - mysql數據庫表前綴怎么寫?(兩個/多個zblogPHP安裝同一個數據庫) zblog模板學習 第2張

上圖所示,是老白的所有模板演示站都是獨立的,但數據都放在了同一個mysql內,只是區分了表前綴!

我在同一個mysql中安裝了超過10個zblogPHP,只需要在安裝的時候,修改mysql數據庫的表前綴不一樣即可!

 
以及批量修改表前綴名的方法:

mysql數據庫表前綴,這個是我們區分其它表的一個方式,當我們同一個數據庫中含有多個系統的的時候,表前綴就卻分的唯一標識。我們使用php開源程序安裝建站的時候,一般數據庫表前綴都是默認設置好的,如:wordpress的默認數據庫表前綴是wp_,echosp的默認數據庫表前綴是ecs_,discuz的默認數據庫表前綴是pre_,織夢內容管理系統(dede)的默認數據庫表前綴是dede_。在其官方安裝教程中或開源系統安全安裝方法中,都建議在安裝的時候,建議修改這個天下人皆知的默認表前綴。如果您不留神,已經使用了默認的表前綴怎么辦?有辦法改嗎?無憂主機(www.51php.com)小編,今天就用ecshop網店開源系統演示,如何修改ecshop的mysql數據庫表前綴名。

 

涉及數據庫的修改都是要非常危險的,所以備份不可少。建議使用兩種以上的方法在php虛擬主機中備份你的網站數據庫。無憂主機空間的控制面板也提供備份功能,你可以參考“網站整站一鍵備份與恢復”。教程中將涉及兩種方法修改,一種是批量修改(使用php腳步完成)一種是精確修改(使用sql查詢語句完成)。

方法一:使用sql語句修改mysql數據庫表前綴名

首先我們想到的就是用sql查詢語句來修改,這個方法也很方便,只需進入無憂主機控制面板——phpmyadmin登入后,在運行 SQL 查詢框中輸入如下語名就可以了。

ALTER TABLE 原表名 RENAME TO 新表名;

如:

ALTER TABLE old_post RENAME TO new_post;

Sql查詢語句有一個缺點,那就是一句SQL語句只能修改一張數據庫的表名,如果你要精確修改某一張表,很好用。如果數據庫表很多的話,不推薦使用。有木有,批量修改多個數據庫表前綴名稱的方法類?有的,請看下面的介紹

方法二:php腳本批量修改mysql數據庫表前綴

一個快速批量的修改數據表前綴的方法:

1、將下面的代碼復制到記事本,根據自己人情況修改好數據庫信息,並保存了51php.php。再上傳您網站的根目錄。您可以直接下載mysql數據庫前綴名批量修改腳本:修改mysql數據庫表前綴名

?
view code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
//設置好相關信息
$dbserver = 'localhost' ; //連接的服務器一般為localhost
$dbname = 'y8n9nghmze_shop' ; //數據庫名
$dbuser = 'y8n9nghmze_user' ; //數據庫用戶名
$dbpassword = 'admin' ; //數據庫密碼
$old_prefix = 'ecs_' ; //數據庫的前綴
$new_prefix = '51php_' ; //數據庫的前綴修改為
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 ;
}
 
//取得數據庫內所有的表名
 
$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  數據表前綴:. $old_prefix . "<br>" .已經修改為:. $new_prefix . "<br>" ;
}
else
{ print 您的數據庫表的前綴. $old_prefix .輸入錯誤。請檢查相關的數據庫表的前綴;
if ( mysql_free_result( $result ) ) {
return true;
}
}
?>

2、 在瀏覽器輸入訪問您的網址/51php.php.數據庫表的前綴就可以修改成功了。

2013年5月28日更新:

無憂主機小編(www.51php.com)今天更新一個mysql數據庫表前綴的另一個方法,這個方法使用也非常簡單,就是用第三方工具——帝國備份王進行修改。操作方法如下:

1、登錄帝國備份后台,選擇“備份數據”—— “批量替換表名”,然后執行操作就可以完成批量替換了,也非常簡單。如下圖:

201358 150x150 如何批量修改mysql的表前綴名稱

 

以上方法都可修改網站前綴,不過大多數的開源程序修改表綴后,再需要修改網站程序的數據庫配置文件,才會讓網站網站的運行。如何修改網站的數據庫可以參考各個開源程序幫助文檔。

 

 

本文地址:http://www.51php.com/mysql/7967.html

 

 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM