数据库链接错误 : Host '10.10.0.2' is not allowed to connect to this MySQL server1

87.       * @param dbConfig  数据库配置
88.       */
89.      public function __construct($dbConfig)
90.      {
91.          $linkfunction = ( TRUE == $dbConfig['persistent'] ) ? 'mysql_pconnect' 'mysql_connect';
92.          $this->conn = @$linkfunction($dbConfig['host'].":".$dbConfig['port'], $dbConfig['login'], $dbConfig['password']) or spError("数据库链接错误 : " mysql_error() . print_r($dbConfig)); 
93.          mysql_select_db($dbConfig['database'], $this->conn) or spError("无法找到数据库,请确认数据库名称正确!");
94.          $this->exec("SET NAMES UTF8");
95.      }
96.      /**
97.       对特殊字符进行过滤
151.          $argString '';$comma '';
152.          //if(null != $args)for ($i = 0; $i < count($args); $i ++) { $argString .= $comma . "\$args[$i]"; $comma = ', '; }a
153.          if( is_array($args) ) {
154.              //echo "new $class_name( print_r($args,true)) <br/>";
155.              $class = new ReflectionClass($class_name);
156.              $GLOBALS['G_SP']['inst_class'][$class_name] = $class->newInstanceArgs($args);
157.          }
158.          else {
159.              //echo "new $class_name($args) <br/>";
160.              if(!$args) {
161.                  $GLOBALS['G_SP']['inst_class'][$class_name]= new $class_name();
47.      {
48.          if( null == $this->tbl_name )$this->tbl_name $GLOBALS['G_SP']['db']['prefix'] . $this->table;
49.          if( '' == $GLOBALS['G_SP']['db_driver_path'] ){
50.              $GLOBALS['G_SP']['db_driver_path'] = $GLOBALS['G_SP']['sp_drivers_path'].'/'.$GLOBALS['G_SP']['db']['driver'].'.php';
51.          }
52.          $this->_db spClass('db_'.$GLOBALS['G_SP']['db']['driver'], array(0=>$GLOBALS['G_SP']['db']), $GLOBALS['G_SP']['db_driver_path']);
53.      }
54. 
55.      /**
56.       从数据表中查找一条记录
57.       *
156.              $GLOBALS['G_SP']['inst_class'][$class_name] = $class->newInstanceArgs($args);
157.          }
158.          else {
159.              //echo "new $class_name($args) <br/>";
160.              if(!$args) {
161.                  $GLOBALS['G_SP']['inst_class'][$class_name]= new $class_name();
162.              }
163.              else {
164.                  $GLOBALS['G_SP']['inst_class'][$class_name]= new $class_name($args);
165.              }
166.          }
16.              $this->email $row['username'];
17.              $this->uid $row['uid'];
18.              $this->logined 2;
19.          }
20. 
21.          $menu spClass('lib_menu')->findAll(array('status'=>1),'sort ASC',null,5);
22.          foreach($menu as $key=>$item){
23.              $sorts spClass('lib_sorts')->find(array('sortsname'=>$item['title']));
24.              if($sorts){
25.                  $menu[$key]['article'] = spClass('lib_article')->findAll(array('cid'=>$sorts['cid'],'status'=>1,'type'=>$sorts['type']),'id asc','id,title',5);
26.              }
194.   */
195.  function spLaunch($configname$launchargs null$returns FALSE ){
196.      if( isset($GLOBALS['G_SP']['launch'][$configname]) && is_array($GLOBALS['G_SP']['launch'][$configname]) ){
197.          foreach( $GLOBALS['G_SP']['launch'][$configname] as $launch ){
198.              if( is_array($launch) ){
199.                  $reval spClass($launch[0])->{$launch[1]}($launchargs);
200.              }else{
201.                  $reval call_user_func_array($launch$launchargs);
202.              }
203.              if( TRUE == $returns )return $reval;
204.          }
7.   spRun  执行用户代码
8.   */
9.  function spRun(){
10.      GLOBAL $__controller$__action;
11.      // 对路由进行自动执行相关操作
12.      spLaunch("router_prefilter");
13.      // 对将要访问的控制器类进行实例化
14.      $handle_controller spClass($__controllernull$GLOBALS['G_SP']["controller_path"].'/'.$__controller.".php");
15.      // 调用控制器出错将调用路由错误处理函数
16.      if(!is_object($handle_controller) || !method_exists($handle_controller$__action)){
17.          eval($GLOBALS['G_SP']["dispatcher_error"]);