phpmyadmin出现2003服务器无响应解决方法

 更新时间:2016年11月25日 16:37  点击:1697
出现登陆phpmyadmin出现 #2003 - 服务器没有响应最先想到的是你的mysql服务器是不是停止了检查一下,如果是mysql服务器停止服务了重启就可以解决问题了。

1、在APMServ5.2.6出现问题的最简单的解决办法是

在本地计算机无法启动APMServ-MySQL5.1服务,错误1067,进程意外中止”的方法很简单,只要进入“D:\Program Files\APMServ5.2.6\MySQL5.1\bin”文件夹,找到mysqld-nt.exe文件执行即可。
默认情况下,当启动APMServ的时候,在服务中MySql5.1都是没有启动的,需要执行mysqld-nt.exe文件,开启MySql服务


2.我们还是来检查phpmyadmin配置文件看看

方法一:查找

 代码如下 复制代码
$cfg['Servers'][$i]['auth_type'] = ‘config’;
更改为
$cfg['Servers'][$i]['auth_type'] = ‘http’;

访问的时候需要输入用户名和密码

方法二:”#2003 – 服务器没有响应”PHPMYADMIN登陆问题的解决

问题描述:

登陆PHPMYADMIN的时候提示 #2003 – 服务器没有响应
1 本地其它php+mysql程序运行正常;
2 phpmyadmin 以前运行正常,就最近出错.

解决办法:
找到/libraries/config.default.php文件中以下代码段:
复制内容到剪贴板代码:

 代码如下 复制代码
$cfg['Servers'][$i]['auth_type']     = ‘config’;    // Authentication method (valid choices: config, http, HTTP, signon or cookie) 验证方式一般填写cookie
$cfg['Servers'][$i]['user']          = ‘root’;      // MySQL user
$cfg['Servers'][$i]['password']      = ”;          // MySQL password (only needed with ‘config’ auth_type)
将其中的$cfg['Servers'][$i]['password'] 补上相应的正确密码.
3.连接mysql mysql.exe -u root -p -h 127.0.0.1
然后同步密码guoxue_mmkey_com
mysql> SET PASSWORD FOR -> ‘ some_user ‘@’ some_host ‘ = OLD_PASSWORD(‘ newpwd ‘);
结合我们的实际情况,在 MySQL Command Line Client 下运行:
set password for root@localhost = old_password(’123′);guoxue_mmkey_com
guoxue_mmkey_com

如果以上方法都不能解决,建议重新配置PHP,重新安装一次mysql即可,一般都能解决


注意:
检查防火墙是否关闭了3306端口,或者直接关闭防火墙测试是否可以正常连接到MYSQL,开始-运行,输入IISRESET重新启动IIS,保证mysql比IIS早启动

一个不错的简单的数据库连接类程序,有需php mysql数据库连接类的同学可参考本文章。
 代码如下 复制代码


<?PHP
require_once("mssql.class.php");
//1.创建类,并连接数据库
$db = new mssql("dns=aaa;uid=sa;pwd=sa;dbname=test");
//2.连接数据库
$conn = $db->config("dns=aaa;uid=sa;pwd=sa;dbname=test");
//3.选择数据库
$dbname = $db->select_db("test");
//4.设置允许调试
$db->debug = true;
//5.执行一条不返回结果的SQL语句
$db->execute("insert into test01(name) values('这是一个测试!')");
//$db->exec("");
//6.执行一条返回结果的SQL语句
$rs = $db->query("select * from test01");
//7.以row方式显示结果
echo "<br>以row方式显示结果集<br>";
while($r = $db->fetch_row($rs)){
 echo $r[0].":".$r[1]."<br>";
}

//8.以array方式显示结果
$rs2 = $db->query("select * from test01");

echo "<br>以array方式显示结果集<br>";
while($r = $db->fetch_array($rs2)){
 echo $r["id"] . ":" . $r["name"] . "<br>";
}

//X.释放
$db->db_close();

?>


 

这是一很基础的东西我们能过构造函数来实现创建类就自动与mysql服务器进行连接,我们只要设置好 $name,$pass,$table三个变量的值就好了。
 代码如下 复制代码

<?php
 class ConnectionMySQL{
     //主机
     private $host="localhost";
     //数据库的username
     private $name="root";
     //数据库的password
     private $pass="";
     //数据库名称
     private $table="phptest";
     //编码形式
     private $ut="utf-8";
 
 
     //构造函数
     function __construct(){
         $this->ut=$ut;
         $this->connect();
 
     }
 
     //数据库的链接
     function connect(){
         $link=mysql_connect($this->host,$this->name,$this->pass) or die ($this->error());
         mysql_select_db($this->table,$link) or die("没该数据库:".$this->table);
         mysql_query("SET NAMES '$this->ut'");
     }
 
     function query($sql, $type = '') {
         if(!($query = mysql_query($sql))) $this->show('Say:', $sql);
         return $query;
     }
 
     function show($message = '', $sql = '') {
         if(!$sql) echo $message;
         else echo $message.'<br>'.$sql;
     }
 
     function affected_rows() {
         return mysql_affected_rows();
     }
 
     function result($query, $row) {
         return mysql_result($query, $row);
     }
 
     function num_rows($query) {
         return @mysql_num_rows($query);
     }
 
     function num_fields($query) {
         return mysql_num_fields($query);
     }
 
     function free_result($query) {
         return mysql_free_result($query);
     }
 
     function insert_id() {
         return mysql_insert_id();
     }
 
     function fetch_row($query) {
         return mysql_fetch_row($query);
     }
 
     function version() {
         return mysql_get_server_info();
     }
 
     function close() {
         return mysql_close();
     }
 
     //向$table表中插入值
     function fn_insert($table,$name,$value){
         $this->query("insert into $table ($name) value ($value)");
     }
     //根据$id值删除表$table中的一条记录
     function fn_delete($table,$id,$value){
         $this->query("delete from $table where $id=$value");
         echo "id为". $id." 的记录被成功删除!";
     }
 }
 
//调用方法

 $db =  new ConnectionMySQL();
 
 $db->fn_insert('test','id,name,sex',"'','hongtenzone','M'");
 $db->fn_delete('test', 'id', 1);
 
 ?>

这里我要讲述一下关于构造函数

 代码如下 复制代码
 //构造函数
     function __construct(){
         $this->ut=$ut;
         $this->connect();
 
     }


这个页面使用了构造函数特别要主要在函数中不要调用数据库连接类了,否则在当前页面会有多连接连接如果访问过大服务器就会出mysql has gone的提法哦。

文章介绍了二种数据库备案的代码,一种是我们php写的常用的数据库备份类,另一种是为linux朋友提供的一个自动定时备份mysql数据库的代码,有需要的同学可以参考一下。

把下面php代码保存成backdata.class.php文件

 代码如下 复制代码

<?php
/*
*
*简单的一个Mysql备份数据类
*
*/
class backupData{
    private    $mysql_link;//链接标识
    private    $dbName;    //数据库名
    private    $dataDir;     //数据所要存放的目录
    private    $tableNames;//表名

    public function __construct($mysql_link){
         $this->mysql_link = $mysql_link;
    }
    public function backupTables($dbName,$dataDir,$tableNames){//开始备份
        $this->dbName  = $dbName;
        $this->dataDir  = $dataDir;
        $this->tableNames = $tableNames;
        $tables=$this->delarray($this->tableNames);
        $sqls='';
        foreach($tables as $tablename){
            if($tablename==''){//表不存在时
                continue;
            }
           
            //************************以下是形成SQL的前半部分**************
            //如果存在表,就先删除
            $sqls .= "DROP TABLE IF EXISTS $tablename;n";
            //读取表结构
            $rs = mysql_query("SHOW CREATE TABLE $tablename",$this->mysql_link); 
            $row=mysql_fetch_row($rs);
            //获得表结构组成SQL
            $sqls.=$row['1'].";nn";
            unset($rs);
            unset($row);
           
            //************************以下是形成SQL的后半部分**************
            //查寻出表中的所有数据
            $rs=mysql_query("select * from $tablename",$this->mysql_link);
            //表的字段个数
            $field=mysql_num_fields($rs);
            //形成此种SQL语句:"INSERT INTO `groups` VALUES('1499e0ca25988d','主任','','0');"
            while($rows=mysql_fetch_row($rs)){
                $comma='';//逗号
                $sqls.="INSERT INTO `$tablename` VALUES(";
                for($i=0;$i<$field;$i++){
                    $sqls.=$comma."'".$rows[$i]."'";
                    $comma=',';
                }
                $sqls.=");nnn";
            }
        }
        $backfilepath=$this->dataDir.date("Ymdhis",time()).'.sql';
       
        //写入文件
        $filehandle = fopen($backfilepath, "w");
        fwrite($filehandle, $sqls);
        fclose($filehandle);
    }
    private function delarray($array){    //处理传入进来的数组
        foreach($array as $tables){
            if($tables=='*'){    //所有的表(获得表名时不能按常规方式来组成一个数组)
                $newtables=mysql_list_tables($this->dbName,$this->mysql_link);
                $tableList = array();
                for ($i = 0; $i < mysql_numrows($newtables); $i++){
                    array_push($tableList,mysql_tablename($newtables, $i));
                }
                $tableList=$tableList;
            }else{
                $tableList=$array;
                break;
            }
        }
        return $tableList;
    }
}

?>

我们再创建一个新的文件与backdata.class.php保存在同一目录

使用方法:

 代码如下 复制代码
require_once("backdata.class.php");
$link = @mysql_connect("localhost","数据库名","密码") or die ('Could not connect to server.');
mysql_query("use cms",$link);
mysql_query("set names utf8",$link);
$dbbck=new backupData($link);//实例化它,只要一个链接标识就行了
//备份数据时,如想备份一个数据库中的所有表,你可这样写:
$dbbck->backupTables("cms","./",array('*'));
//备份数据时,如想备份一个数据库中的仅一个表时,你可这样写:
$dbbck->backupTables("cms","./",array('user'));
//备份数据时,如想备份一个数据库中的多个表时,你可这样写:
$dbbck->backupTables("cms","./",array('user','acl','informatoin'));
//注解:$dbbck->backupTables("参1","参2",array());中,

参1为:数据库名,
参2为:要存放备份数据的位置(即目录地址)
第三个为:你要保存那些表

 

下面为linux中的自动定时备份的代码

参考了网上的很多教程,外加自己的测试,以下脚本经测试可用。

 代码如下 复制代码

#!/bin/bash
#Shell Command For Backup MySQL Database Everyday Automatically By Crontab
#Author : Carlos Wong
#Date : 2010-08-24

#配置参数
USER=root #数据库用户名" >用户名
PASSWORD=××××× #数据库用户密码
DATABASE=TIENIUZAI    #数据库名称
WEBMASTER=tieniuzai@qq.com #管理员邮箱地址,用以发送备份失败消息提醒
BACKUP_DIR=/var/www/Data_Backup/topons/ #备份文件存储路径
LOGFILE=/var/www/Data_Backup/topons/data_backup.log #日记文件路径
DATE=`date ‘+%Y%m%d-%H%M’` #日期格式(作为文件名)
DUMPFILE=$DATE.sql #备份文件名
ARCHIVE=$DATE.sql.tgz #压缩文件名
OPTIONS=”-u$USER -p$PASSWORD –opt –extended-insert=false –triggers=false -R –hex-blob –flush-logs –delete-master-logs -B $DATABASE”  #mysqldump 参数 详情见帮助 mysqldump -help

#判断备份文件存储目录是否存在,否则创建该目录
if [ ! -d $BACKUP_DIR ] ;
then
mkdir -p “$BACKUP_DIR”
fi

#开始备份之前,将备份信息头写入日记文件
echo ” ” >> $LOGFILE
echo ” ” >> $LOGFILE
echo “———————————————–” >> $LOGFILE
echo “BACKUP DATE:” $(date +”%y-%m-%d %H:%M:%S”) >> $LOGFILE
echo “———————————————– ” >> $LOGFILE

#切换至备份目录
cd $BACKUP_DIR
#使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件
mysqldump $OPTIONS > $DUMPFILE
#判断数据库备份是否成功
if [[ $? == 0 ]]; then
#创建备份文件的压缩包
tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1
#输入备份成功的消息到日记文件
echo “[$ARCHIVE] Backup Successful!” >> $LOGFILE
#删除原始备份文件,只需保 留数据库备份文件的压缩包即可
rm -f $DUMPFILE
else
echo “Database Backup Fail!” >> $LOGFILE

#备份失败后向网站管理者发送邮件提醒,需要mailutils或者类似终端下发送邮件工具的支持
#mail -s “Database:$DATABASE Daily Backup Fail” $WEBMASTER
fi
#输出备份过程结束的提醒消息
echo “Backup Process Done”

使用:

将以上代码保存到: /usr/sbin/DataBackup     (文件名随意,只要不跟系统原有的命令同名即可;代码可以放到任何地方,放在sbin目录下只是为了方便执行,sbin目录下的文件/目录可在终端直接调 用,类似于windows下PATH变量指定的目录)
为脚本添加可执行权限:  sudo chmod +x  /usr/sbin/DataBackup
执行脚本: sudo  DataBackup
如果需要定时执行备份命令的,只需将下面这段代码放到crontab 文件(sudo vim /etc/crontab)中去就可以了:
01 3 * * * root /usr/sbin/DataBackup    #它代表着将于每天3点执行DataBackup脚本

小注意一下下:

linux 下的shell脚本定义变量的格式为:  key=value  ,注意他们两者之间的” = “前后不能出现空格,否则系统无法确认该变量。
用红色标注的那行,第一个类似单引号的字符”`”其实不是单引号,它的输入键在键盘ESC键下方。
这个脚本只适合用于一些小站点的备份,因为它是对数据库进行全部备份而不是增量备份,不适合大容量的数据库备份。

相对于两种方法定时备份算是最好的方法了,这样可以节省时间让机器在最少人访问时自动备案,而php备份类需要人为操作,当然在windows下也可以利用计划任务来实现了。

应该说介绍了利用phpexcel插件来实现数据库的导入与导入功能,本文章主要是告诉你把excel导入到mysql数据库的方法.

先下载

下载phpexcel文件,地址:phpexcel.codeplex.com/

在reader.php文件中找到以下类似代码(第一行既是),改成正确的oleread.php路径即可:require_once 'oleread.php';

然后新建一个php文件引入reader.php,


代码如下:

 代码如下 复制代码

<?php
require_once 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('gbk');//此处设置编码,一般都是gbk模式
 
$data->read('Book1.xls');//文件路径
 
error_reporting(E_ALL ^ E_NOTICE);
//这里我就只循环输出excel文件的内容了,要入库,只要把输出的地方,写一段mysql语句即可~
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
 for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
  echo """.$data->sheets[0]['cells'][$i][$j]."",";
 }
 echo "n";
}
?>


代码示例

 代码如下 复制代码

require_once 'phpexcel/Classes/PHPExcel.php';
require_once 'phpexcel/Classes/PHPExcel/IOFactory.php';
require_once 'phpexcel/Classes/PHPExcel/Reader/Excel5.php';
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$objPHPExcel = $objReader->load($filename);   //$filename可以是上传的文件,或者是指定的文件
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
$k = 0;   

//循环读取excel文件,读取一条,插入一条
   for($j=2;$j<=$highestRow;$j++)
   {

     $a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//获取A列的值
     $b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//获取B列的值
     $sql = "INSERT INTO table VALUES(".$a.",".$b.")";
     mysql_query($sql);

   }

代码实例cvs导入到数据库

把csv导入到数据库。

 代码如下 复制代码

function   getmicrotime(){    
           
              list($usec,   $sec)   =   explode("   ",microtime());    
           
                    return   ((float)$usec   +   (float)$sec);  
            }  
   
  $time_start   =   getmicrotime();  
   
  include   ("connectdb.php");  
   
   
  function   insert_data   ($id,$summary,$description,$additional_information,$category)  
   
      {  
           
          $my_query1   =   "insert   into   mantis_bug_text_table   (id,description,additional_information)    
                 
          values   ('$id','$description','$additional_information')";  
         
          $first   =   mysql_query($my_query1);      
   
          $my_query2   =   "insert   into   mantis_bug_table   (id,project_id,summary,bug_text_id)   values   ('$id','$category','$summary','$id')";  
                 
          $second   =   mysql_query($my_query2);      
         
          return;  
      }  
   
  $fp   =   fopen("test.csv","r");  
   
  while($data   =   fgetcsv($fp,'1000',',')){  
   
              insert_data   ($data[0],$data[1],$data[2],$data[3],$data[4]);  
         
              echo   "<font   color   =   #ff0000   size   =   20>数据导入成功!</font><br><br>";      
      }  
  fclose   ($fp);  
   
  $time_end   =   getmicrotime();  
   
  $time   =   $time_end   -   $time_start;  
   
  echo   "程序执行时间:".$time."秒"; 

更多详细内容请查看:http://www.111cn.net/phper/php-database/excel-mysql.htm

[!--infotagslink--]

相关文章

  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • 连接MySql速度慢的解决方法(skip-name-resolve)

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21
  • phpmyadmin config.inc.php配置示例

    phpmyadmin config.inc.php配置示例...2013-09-29
  • 分享一段php获取linux服务器状态的代码

    简单的php获取linux服务器状态的代码,不多说-直接上函数:复制代码 代码如下:function get_used_status(){ $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况 $rs =...2014-05-31
  • Springboot+TCP监听服务器搭建过程图解

    这篇文章主要介绍了Springboot+TCP监听服务器搭建过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-28
  • 总结android studio注意事项及打不开等问题解决方法

    经过一段时间的使用,总结了android studio打不开等问题的6种解决方法及android studio注意事项,希望对大家有所帮助。 1 首次运行,建立好项目需要下载一些东西,如果...2016-09-20
  • IE6-IE9中tbody的innerHTML不能赋值的解决方法

    IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </head> <body style="height:3...2014-06-07
  • MySQL ERROR 2013 (HY000)错误解决方法

    当通过 TCP/IP 连接 MySQL 远程主机时,出现 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104 。如果是在linux shell命令行中直接打 mysql 命令,...2015-03-15
  • 服务器 UDP端口占用几千个的解决办法

    前一段时间使用NetStat命令查看服务器端口时,发现服务器udp端口开放了好多,最少在1000个以上,当时事情比较多,没有管它,今天终于有点时间,仔细检查了一下,排除了这个问题. ...2016-01-27
  • Mysql修改datadir导致无法启动问题解决方法

    centos6.2,停止mysqld然后修改/etc/my.cnf datadir的位置,启动mysqld提示FAILED,查看日志 复制代码 代码如下: 120609 11:31:31 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 120609 11:35:12 my...2015-03-15
  • Photoshop提示“此产品的许可证已过期"及“无法开始您的Adobe Photoshop CS5.1 订阅”解决方法

    首先不要鄙视我用Photoshop盗版,实在是贵。现在我们来看看如果你的Photoshop提示“此产品的许可证已过期",还有“无法开始您的Adobe Photoshop CS5.1 订阅”如何解决吧...2016-09-14
  • 小米解锁验证失败怎么办 小米解锁工具登录失败解决方法

    小米手机如果想要刷机就必须要先解锁验证才可以,那么,如果遇到小米解锁验证失败以及小米解锁工具登录失败的现象怎么办呢?对此,本文就为大家进行解答,有需要的朋友来看看。...2016-12-21
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • 解决HttpPost+json请求---服务器中文乱码及其他问题

    这篇文章主要介绍了解决HttpPost+json请求---服务器中文乱码及其他问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-22
  • 使用phpMyAdmin批量修改Mysql数据表前缀的方法

    多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分。而如何批量修改已有数据库的前缀名呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介绍的是相对简单的...2015-10-21
  • phpMyadmin创建数据库和设置用户权限图解

    phpmyadmin是一款很不错的WEB对mysql数据库管理软件,如果你想创建数据库与设置用户权限我们必须操作用户的很高的权限,如ROOT权限,下面我来给大家介绍介绍。 先来配...2016-11-25
  • photoshop字体显示乱码解决方法

    今天小编在这里就来给各位photoshop的这一款软件的使用者们来详细的说一下软件的字体出现了乱码这一问题的解决方法,那么各位有出现这个问题的,下面就来跟着小编一起看...2016-09-14