MySQL server has gone away

解决方案 »

  1.   

    我有多个程序用到了同一个mysql数据库的长连接,其它程序中都不会出现 MySQL server has gone away的错误,mysql服务正常,但就有一个程序有MySQL server has gone away的错误,请问什么情况下,会出现MySQL server has gone away的错误。出现MySQL server has gone away的错误是在执行了,一个长的查询,同个一个建表的语句CREATE TABLE IF NOT EXISTS barmatchinfo_match_%d_%d(PLAYERID int(11) NOT NULL,BarID int(11) NOT NULL,FVIP int(11) NOT NULL DEFAULT \'2\',LASTLOGINDATE datetime DEFAULT NULL,LASTIP varchar(16) DEFAULT NULL,LASTSEVID int(11) NOT NULL DEFAULT \'0\',ONLINESEC int(11) NOT NULL DEFAULT \'0\',LEAVESEC int(11) NOT NULL DEFAULT \'0\',ISONLINE int(11) NOT NULL DEFAULT \'0\',PLAYERLEVEL int(11) NOT NULL DEFAULT \'1\',TOTALMARK decimal(20,1) NOT NULL DEFAULT \'0.0\',TOTALHURT int(11) NOT NULL DEFAULT \'0\',TOTALKILL int(11) NOT NULL DEFAULT \'0\',TOTALKILLED int(11) NOT NULL DEFAULT \'0\',TOTALHIT int(11) NOT NULL DEFAULT \'0\',PLAYERRANK int(11) NOT NULL DEFAULT \'0\',Head int(11) NOT NULL DEFAULT \'0\',BRate decimal(11,1) NOT NULL default \'0.0\', PRIMARY KEY (PLAYERID,BarID),KEY TOTALMARK (TOTALMARK),KEY Head (Head),KEY TOTALKILL (TOTALKILL),KEY LEAVESEC (LEAVESEC),KEY BarID (BarID),KEY ONLINESEC (ONLINESEC)) ENGINE=InnoDB DEFAULT CHARSET=utf8;",
      

  2.   

    检查一下你的MYSQL的错误日志,看其中有些什么提示。
    另外检查一下这些系统参数。
    mysql> show variables like '%timeout%';
    +----------------------------+-------+
    | Variable_name              | Value |
    +----------------------------+-------+
    | connect_timeout            | 10    |
    | delayed_insert_timeout     | 300   |
    | innodb_lock_wait_timeout   | 50    |
    | innodb_rollback_on_timeout | OFF   |
    | interactive_timeout        | 28800 |
    | net_read_timeout           | 30    |
    | net_write_timeout          | 60    |
    | slave_net_timeout          | 3600  |
    | table_lock_wait_timeout    | 50    |
    | wait_timeout               | 28800 |
    +----------------------------+-------+
    10 rows in set (0.00 sec)mysql>
      

  3.   

    sql语句是不是会对产生这这样的错误