My SQL常见错误问答!
时间:2007-12-23 来源:不详 作者:迈克DB
shell>mysqladmin--socket=/path/to/socketversion
你正在使用Linux和线程已经死了(核心倾倒了)。在这种情况中,你必须杀死其它mysqld线程(例如在启动一个新的MySQL服务器之前,可以用mysql_zap脚本)。见18.1假如MySQL总是崩溃怎么办。
假如你得到错误Can’tconnecttoMySQLserveronsome_hostname,你可以尝试下列步骤找出问题是什么:
通过执行telnetyour-host-nametcp-ip-port-number并且按几次回车来检查服务器是否正常运行。假如有一个MySQL运行在这个端口上,你应该得到一个包含正在运行的MySQL服务器的版本号的应答。假如你得到类似于telnet:Unabletoconnecttoremotehost:Connectionrefused的一个错误,那么没有服务器在使用的端口上运行。
尝试连接本地机器上的mysqld守护进程,并用mysqladminvariables检查mysqld被配置使用的TCP/IP端口(变量port)。
检查你的mysqld服务器没有用--skip-networking选项启动。
18.2.3Host’...’isblocked错误
假如你得到象这样的一个错误:
Host’hostname’isblockedbecauseofmanyconnectionerrors.
Unblockwith’mysqladminflush-hosts’
这意味着,mysqld已经得到了大量(max_connect_errors)的主机’hostname’的在中途被中断了的连接请求。在max_connect_errors次失败请求后,mysqld认定出错了(象来字一个黑客的攻击),并且阻止该站点进一步的连接,直到某人执行命令mysqladminflush-hosts。 内容来自dedecms
缺省地,mysqld在10个连接错误后阻塞一台主机。你可以通过象这样启动服务器很轻易地调整它:
shell>safe_mysqld-Omax_connect_errors=10000&
注重,对给定的主机,假如得到这条错误消息,你应该首先检查该主机的TCP/IP连接有没有问题。假如你的TCP/IP连接不在运行,增加max_connect_errors变量的值对你也不会有帮助!
18.2.4Toomanyconnections错误
假如在你试土连接MySQL时,你得到错误Toomanyconnections,这意味着已经有max_connections个客户连接了mysqld服务器。
假如你需要比缺省(100)更多的连接,那么你应该重启mysqld,用更大的max_connections变量值。
注重,mysqld实际上答应(max_connections 1)个客户连接。最后一个连接是为一个用Process权限的用户保留的。通过不把这个权限给一般用户(他们不应该需要它),有这个权限一个治理员可以登录并且使用SHOWPROCESSLIST找出什么可能出错。见7.21SHOW句法(得到表,列的信息)。
18.2.5Outofmemory错误
假如你发出查询并且得到类似于下面的错误:
mysql:Outofmemoryatline42,’malloc.c’
mysql:needed8136byte(8k),memoryinuse:12481367bytes(12189k)
ERROR2008:MySQLclientranoutofmemory
内容来自dedecms
注重,错误指向了MySQL客户mysql。这个错误的原因很简单,客户没有足够的内存存储全部结果。
为了修正这个问题,首先检查你的查询是否正确。它应该返回这么多的行,这合理吗?假如是这样,你可以使用mysql--quick,它使用mysql_use_result()检索结果集合。这将较少的负担放在了客户端(只是服务器更多)。
18.2.6Packettoolarge错误
当一个MySQL客户或mysqld服务器得到一个比max_allowed_packet个字节长的包,它发出一个Packettoolarge错误并终止连接。
假如你正在使用mysql客户,你可以通过用mysql--set-variable=max_allowed_packet=8M指定一个更大的缓冲区来启动客户程序。
假如你正在使用不答应你指定最大包大小的其他客户(例如DBI),你需要在你启动服务器时设置包大小。你可以使用mysqld的命令行选项设置max_allowed_packet为一个更大的尺寸。例如,假如你正期望将一个全长的BLOB存入一张表中,你将需要用--set-variable=max_allowed_packet=24M选项来启动服务器。
上一篇:My SQL 5.0 触发器 下一篇:sql优化器探讨
文章评论
共有位Admini5网友发表了评论 查看完整内容