zoukankan      html  css  js  c++  java
  • 关于数据库表前缀的认识

    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 ";
     
    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

     
     
     
     
     
     
     
     
  • 相关阅读:
    vcsa7.0可能不兼容esxi6.7
    使用livecd 更改root密码
    虚拟机初始化脚本
    一句话修改UUID
    vcsa 6.7 u1升级6.7 u2--6.7U3---6.7U3c
    【转载】:FreeRadius安装及与openldap的连接(centos 7 环境)
    freeradius 关联LDAP认证-按属性过滤LDAP目录中的用户
    使用包ldap3进行Python的LDAP操作
    2020年1月29日-学习flask第一天
    Python-xlwt库的基本使用
  • 原文地址:https://www.cnblogs.com/loanhicks/p/7789197.html
Copyright © 2011-2022 走看看