首页 > 代码库 > MySQL之常见问题总结

MySQL之常见问题总结


MySQL总是崩溃

首先你应该试着找出问题MySQLd守护进程是否死掉或你的问题是否与你的客户有关。你能够用MySQLadmin version检查你的MySQLdserver正常运行了多长时间。假设MySQLd死了,你能够在文件“MySQL-data-directory/‘hostname‘.err”中找到其原因。

使用MySQL时的一些常见错误

MySQL server has gone away 常见的原因是server超时了而且关闭了连接。缺省地,假设没有事情发生。server在 8个小时后关闭连接。你可在启动MySQLd时通过设置wait_timeout变量改变时间限制。

假设MySQLd得到一个太大或不正常的包,它觉得客户出错了并关闭连接。

Can‘t connect to [local] MySQL server

通常意味着没有一个MySQLserver执行在系统上或当试图连接MySQLdserver时,你正在使用一个错误的套接字文件或TCP/IPport。

检查(使用ps)server上是否有一个名为MySQL数据库d的进程启动

假设一个MySQLd进程正在执行。能够通过尝试这些不同的连接来检查server

shell> MySQLadmin version shell> MySQLadmin variables shell> MySQLadmin -h `hostname` version variables shell> MySQLadmin -h `hostname` --port=3306 version shell> MySQLadmin -h ‘ip for your host‘ version shell> MySQLadmin --socket=/tmp/MySQL.sock version 注意hostname命令使用反引號“`”而非正引號“‘”;这些导致hostname输出(即,当前主机名)被取代进MySQLadmin命令中。

Host ‘...‘ is blocked错误

Host ‘hostname‘ is blocked because of many connection errors. Unblock with ‘MySQLadmin flush-hosts‘ 这意味着,MySQLd已经得到了大量(max_connect_errors)的主机‘hostname‘的在中途被中断了的连接请求。在max_connect_errors次失败请求后,MySQLd认定出错了(象来字一个黑客的攻击),而且阻止该网站进一步的连接,直到某人运行命令MySQLadmin flush-hosts。

缺省地,MySQLd在10个连接错误后堵塞一台主机。你能够通过象这样启动server非常easy地调

MySQL之常见问题总结