zblogPHP默認安裝時,使用的是mysql數據庫,負載能力更強!
那么
1、配置的時候,如何設置數據庫表前綴呢?
2、兩個、多個zblogPHP如何安裝到同一個數據庫?
下方回答下這個疑問:
在安裝mysql時候會顯示配置頁面,如下圖:
四個剪頭分別為: 數據庫用戶名、數據庫密碼、數據庫名、數據庫表前綴!
最后一個大紅箭頭的就是安裝zblogPHP默認時的前綴了,默認一律為:zbp_
一般情況下如果一個mysql數據庫只安裝了一個zblogPHP,此時數據庫表前綴使用默認即可,但如果如上圖所示的數據庫為zblog內同時安裝了多個zblogPHP,此時這些表前綴就不能一樣了,否則會覆蓋掉其它一樣表前綴的zblogPHP數據,所以多個zblogPHP安裝在同一個數據庫內時必須在安裝的時候區分表前綴,比如使用域名簡寫,如果你的域名是baidu.com,可以考慮使用 baidu_ 作為表前綴!
下圖給大家看下我的一個theme數據庫內同時安裝了超過10個zblogPHP,表前綴都不一樣!
上圖所示,是老白的所有模板演示站都是獨立的,但數據都放在了同一個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數據庫表前綴名。
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、登錄帝國備份后台,選擇“備份數據”—— “批量替換表名”,然后執行操作就可以完成批量替換了,也非常簡單。如下圖:
以上方法都可修改網站前綴,不過大多數的開源程序修改表綴后,再需要修改網站程序的數據庫配置文件,才會讓網站網站的運行。如何修改網站的數據庫可以參考各個開源程序幫助文檔。
本文地址:http://www.51php.com/mysql/7967.html