找回密码
 注册
搜索
免费空间 免费域名 免费AI 老牌主机商首月仅1美分!27美元/年!Spaceship优惠码 Namecheap优惠码阿里云2核2G3M新老续费同享99元/年!
查看: 358|回复: 6

[程序代码] 分享个让帝国备份支持多MYSQL配置切换的程序

[复制链接]
发表于 2010-10-21 11:39:34 | 显示全部楼层 |阅读模式
今天安个帝国备份来备份MYSQL 却发现只能设置一个数据库信息
但我的主机使用了2个MYSQL帐号 备份还要来回改配置信息 所以写了这个切换程序
可以在多个配置间任意切换
先在帝国备份中填好默认MYSQL配置信息 再使用本程序
安装:
打开/lang/gbutf8/temp/eleft.php(我用的是gbutf8 请把gbutf8换成你用的语言和编码)
将文件结尾由
  1. <td height="30" bgcolor="#FFFFFF" onmouseout="this.style.backgroundColor='#ffffff'" onmouseover="this.style.backgroundColor='#DBEAF5'"> <div align="center"><a href="phome.php?phome=exit" onclick="return confirm('确认要退出系统?');" target="_parent">退出系统</a></div></td>
  2.   </tr>
  3. </table>
  4. </body>
  5. </html>
复制代码
改为
  1. <td height="30" bgcolor="#FFFFFF" onmouseout="this.style.backgroundColor='#ffffff'" onmouseover="this.style.backgroundColor='#DBEAF5'"> <div align="center"><a href="phome.php?phome=exit" onclick="return confirm('确认要退出系统?');" target="_parent">退出系统</a></div></td>
  2.   </tr>
  3. <?php
  4. define('NULL_SHOWLIST',TRUE);
  5. require(EBAK_PATH.'class/m.mysqluser.php');

  6. ?>
  7. </table>
  8. </body>
  9. </html>
复制代码
编辑/class/config.php
  1. $phome_db_char="utf8";

  2. //USER
  3. $set_username="admin";
复制代码
改为
  1. $phome_db_char="utf8";
  2. include(dirname(__FILE__).'/m.mysqluser.php');
  3. //USER
  4. $set_username="admin";
复制代码
把下面的代码保存在class目录 文件名m.mysqluser.php
  1. <?php
  2. /********************
  3. 帝国备份 多MYSQL配置切换
  4. by:null
  5. 2010-10-21

  6. $m_conf['confname']['ver'] //mysql版本
  7. $m_conf['confname']['server'] //mysql服务器 通常为localhost
  8. $m_conf['confname']['port'] //端口 可留空
  9. $m_conf['confname']['user'] //mysql用户名
  10. $m_conf['confname']['pass'] //mysql密码
  11. $m_conf['confname']['dbname'] //mysql数据库名
  12. $m_conf['confname']['pre'] //表前缀
  13. $m_conf['confname']['char'] //编码
  14. 注意$m_conf['confname']['xxxx']当中的confname是用来区分配置的 必须是唯一的
  15. 示例:$m_conf['conf1']['user']='dbuser123';则conf1是配置名 dbuser123是MYSQL用户名
  16. 没设置的参数则使用class/config.php中的值

  17. ********************/
  18. //
  19. $m_conf=array();
  20. //请在下面设置多个数据库的配置信息
  21. //第一个数据库配置
  22. $m_conf['conf1']['user']='db1';
  23. $m_conf['conf1']['pass']='123456'; //mysql密码

  24. //第二个
  25. $m_conf['conf2']['user']='db2';
  26. //第三个 依次类推
  27. $m_conf['conf3']['server']='mysql.xxxx.com';
  28. $m_conf['conf3']['user']='rmdb123@1';
  29. $m_conf['conf3']['pass']='987654321';//mysql密码

  30. $m_df='conf1';//默认使用哪个配置
  31. if(!defined('NULL_SHOWLIST')){

  32. if(!isset($_SESSION)){//如果没有定义$_SESSION则未开始session
  33.         if(function_exists('session_start')){
  34.                 session_start();//开始session
  35.                 }else{
  36.                 die('您的主机不支持session 无法使用多MYSQL用户切换程序');
  37.                 }
  38.         }
  39.         $select=empty($_GET['m_select'])?'':$_GET['m_select'];

  40.         //isset($_SESSION['m_mysql_user']);
  41.        
  42.         if(!empty($select)){
  43.                 $_SESSION['m_mysql_conf']=$select;
  44.                 $c_conf=$select;
  45.                 }elseif(!empty($_SESSION['m_mysql_conf'])){
  46.                 //$phome_db_username;
  47.                 $c_conf=$_SESSION['m_mysql_conf'];
  48.                 }elseif(!empty($m_df)){
  49.                 $c_conf=$m_df;
  50.                 }else{
  51.                 die('请填写默认配置名');
  52.                 }
  53.                 foreach($m_conf[$c_conf] as $k=>$v){
  54.                         if($k=='ver'){
  55.                         $phome_db_ver=$v;
  56.                                 }elseif($k=='server'){
  57.                                 $phome_db_server=$v;
  58.                                 }elseif($k=='port'){
  59.                                 $phome_db_port=$v;
  60.                                 }elseif($k=='user'){
  61.                                 $phome_db_username=$v;
  62.                                 }elseif($k=='pass'){
  63.                                 $phome_db_password=$v;
  64.                                 }elseif($k=='dbname'){
  65.                                 $phome_db_dbname=$v;
  66.                                 }elseif($k=='pre'){
  67.                                 $baktbpre=$v;
  68.                                 }elseif($k=='char'){
  69.                                 $phome_db_char=$v;
  70.                                 }else{
  71.                                 die('未知参数'.$k);
  72.                                 }
  73.                         }

  74.         }//end
  75. if(defined('NULL_SHOWLIST')){
  76.         //echo '<br>5555555</br>';
  77.         //print_r($m_conf);
  78.         echo '<br>当前使用的mysql配置是'.$c_conf.'</br>';
  79.         foreach($m_conf as $k=>$v){
  80.                 //echo '<br><a href="?m_select='.urlencode($k).'">'.$k.'</a></br>';
  81.                 echo '  <tr>
  82.     <td height="30" bgcolor="#FFFFFF" onmouseout="this.style.backgroundColor=\'#ffffff\'" onmouseover="this.style.backgroundColor=\'#DBEAF5\'"><div align="center"><a href="?m_select='.urlencode($k).'&rand='.time().rand(1,999).'">切换到'.$k.'</a></div></td>
  83.   </tr>
  84. ';
  85.                 }
  86.         }
  87. ?>
复制代码
比如我的主机是2个MYSQL帐号
除了用户名外其他信息都一样 先在帝国备份中填好MYSQL主机密码等
在m.mysqluser.php中可以这样填
//第一个
$m_conf['conf1']['user']='db1';
//第二个
$m_conf['conf2']['user']='db2';
其他信息使用class/config.php中的配置

评分

参与人数 1银币 +10 收起 理由
wo284473037 + 10 原创内容

查看全部评分

发表于 2010-10-21 11:41:51 | 显示全部楼层
dd
头像被屏蔽
发表于 2010-10-21 11:49:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
发表于 2010-10-21 13:23:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2010-10-21 13:31:07 | 显示全部楼层
原创东西要收下
ajal 发表于 2010-10-21 11:49
发表于 2010-10-21 20:27:40 | 显示全部楼层
楼主很强!
发表于 2010-10-21 21:20:46 | 显示全部楼层
mark!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|免费吧论坛

GMT+8, 2024-5-18 23:49 , Processed in 0.031907 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表