关于数据库表前缀的认识

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数据库表前缀名

?

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、登录帝国备份后台,选择“备份数据”—— “批量替换表名”,然后执行操作就可以完成批量替换了,也非常简单。如下图:

以上方法都可修改网站前缀,不过大多数的开源程序修改表缀后,再需要修改网站程序的数据库配置文件,才会让网站网站的运行。如何修改网站的数据库可以参考各个开源程序帮助文档。

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

时间: 2024-10-11 10:24:13

关于数据库表前缀的认识的相关文章

批量修改mysql数据库表前缀。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

修改DEDE系统数据库表前缀

1,修改之前我们先备份下数据(哥们儿之前没有备份,我艹,害苦了),备份的操作过程是:网站后台------系统------数据库备份/还原-------然后按提交.默认保存的数据在data/backupdata目录下. 2,接着修改目录下data/backupdata目录下的所有txt文件的表前缀,把dede_修改您需要的表前缀即可.如我是修改成xl_的表前缀. 3, 紧接着打开data/backupdata目录下的所有txt文件,把文件里面的dede_表前缀替换成,xl_ (用DW打开,批量替换

ABP框架源码学习之修改默认数据库表前缀或表名称

1,源码 1 namespace Abp.Zero.EntityFramework 2 { 3 /// <summary> 4 /// Extension methods for <see cref="DbModelBuilder"/>. 5 /// </summary> 6 public static class AbpZeroDbModelBuilderExtensions 7 { 8 /// <summary> 9 /// Chan

MYSQL批量修改表前缀与表名sql语句

修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO db_', substring(table_name, 4), ';' ) FROM information_schema. TABLES WHERE table_name LIKE 'ct%'; 批量复制一下到Notepad++中,只保留sql语句,再复

php实现批量修改表前缀的方法介绍~

解决这个问题,网上通常有两种方法,底部附第三种方法,按照官方文档建议的方式来. 第一种方法就是批量生成alter table 的数据库修改语句,然后复制到文本处理工具中,然后批量把前缀给修改成想要的,然后粘贴到mysql工具的执行窗口,这样就可实现修改数据表前缀的功能:如下: select concat('alter table',table_name,'rename to',table_name) from information_schema.tables where table_name

根据时间段和数据库表名的前缀获取表名

/**      * $stime 开始时间   $etime 结束时间  $table 表前缀      */     public function getcalltablename($starttime,$endtime,$tablename){              $startsj=strtotime($starttime);         $endsj=strtotime($endtime);                  $daynums=floor(($endsj-$s

dedecms(织梦)表前缀的bug

    表前缀的做法很科学,当一个数据库中的存在多个项目时,而项目之间必定会存在相同命名的表,这时候给项目加上表前缀是很有必要的,所以我们应该习惯给项目里的表加表前缀.     通常我们设置表前缀是把表前缀做成一个配置.在程序中我们会把该表前缀加到sql语句的表名前.但是在程序中的具体操作有很多方式.     目前我看到了2种关于把表前缀加到sql语句中的做法:     1.dedecms     在写sql语句的时候不考虑表前缀的问题,在所有表的前面都加上同样的字符串(#@__),然后在sql

spring security基于数据库表进行认证

我们从研究org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl.class的源码开始 public class JdbcDaoImpl extends JdbcDaoSupport implements UserDetailsService, MessageSourceAware { //默认的用户查询sql public static final String DEF_USERS_BY_USERNAME_QUERY = "

Activiti5.13数据库表结构设计

1.结构设计 1.1.    逻辑结构设计 Activiti使用到的表都是ACT_开头的. ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的表.带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等). ACT_RU_*: ‘RU’表示runtime,运行时表-RuntimeService.这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据.Activiti只存储实例执行期间的运行时数据,当流程实例