1、连接类
(1)、问题:MySQL server has gone away
解决办法:出现该报错常见的原因是服务器超时了并且关闭了连接。缺省地,如果没有事情发生,服务器在 8个小时后关闭连接。如果该报错经常出现,请联系DBA设置wait_timeout变量改变时间限制。另外如果mysqld得到一个太大或不正常的包,它也会认为客户端连接出错了并关闭连接。
(2)、问题:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.0' (10065)
解决办法:首先请在本地ping hostname或者192.168.1.0,在确认IP可以ping通之后(如果ip无法ping通请联系网站运维负责人处理),则继续telnet hostname 3306(并非所有的mysql端口号都为3306,请根据实际情况调整)确认服务器层TCP通信是否有问题,如果该步骤正常则是因为该客户端的IP被MySQL服务器上的防火墙阻隔了,请联系网站运维负责人处理
(3)、问题:ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
解决办法:首先请在本地ping hostname或者192.168.1.0,在确认IP可以ping通之后(如果ip无法ping通请联系网站运维负责人处理),则继续telnet hostname 3306(并非所有的mysql端口号都为3306,请根据实际情况调整)确认服务器层TCP通信是否有问题,如果该步骤出现问题则通常意味着没有一个MySQL服务器运行在系统上或当试图连接mysqld服务器时,你正在使用一个错误的套接字文件或TCP/IP端口。请联系DBA检查mysql进程是否存在,如果mysqld进程正在运行,请尝试通过不同的连接来检查服务器.
(4)、问题:Host 'hostname' is blocked because of many connection errors.
解决办法:这意味着,mysqld已经得到了大量(max_connect_errors)的主机'hostname'的在中途被中断了的连接请求。在max_connect_errors次失败请求后,mysqld认定出错了(类似于一个黑客的攻击),并且阻止该站点进一步的连接。这时请联系DBA在MySQL数据库上处理。另外缺省地,mysqld在10个连接错误后阻塞一台主机。你可以通过象这样启动服务器很容易地调整它:
(5)、问题:ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password:YES)
解决办法:如果出现上述报错,首先请确认user用户是否存在。其次检测使用user账号登录的客户端IP是否被授权登录,如果未授权则联系DBA做授权处理。最后检测密码是否输入正确,如果不正确,请重新输入,否则联系DBA重置密码
(6)、问题:Access denied for user: 'roota@localhost' (Using password: NO)
解决办法:请检查登录MySQL的用户是否存在,如果用户不存在则联系DBA创建
(7)、问题:ERROR 1130: Host xx.xx.xx.xx is not allowed to connect to this MySQL server
解决办法:出现该报错是因为mysql服务器没有赋予此客户端远程连接的权限。请联系DBA授权
(8)、问题:Unknown MySQL Server Host 'localhosadst' (11001)
解决办法:连接MySQL数据库时指定的host不存在或者无法连接,请在重新连接前检查该host是否可以接受连接,具体方法参考(2)、(3)
2、操作类
(1)、问题:You have an error in your SQL syntax
解决办法:出现这个问题,对,不用怀疑,就是你的SQL写错了
(2)、问题:Duplicate entry 'xxx' for key 1
解决办法:出现这种报错主要是因为索引值重复了,因为如果该索引是primary或者unique这两种,那么数据表的数据对应的这个字段就必须保证其每条记录的唯一性,否则就会产生这个错误。可以把重复的数据记录干掉,只保留一条来避免这种问题出现
(3)、问题:Duplicate key name 'xxx'
解决办法:将添加的字段xxx已经存在,这个时候看一下已经存在的字段是否和将要添加的字段属性完全相同,如果相同则可以跳过不执行这句sql,如果不一样则删除掉这个字段。
(4)、问题:Lost connection to MySQL server during query
解决办法:MySQL服务器在查询期间丢失连接,可以采用这几种方法来.一般出现该错误是因为线程活跃时间太短,如果频繁出现,请联系DBA修改MySQL服务器的超时限制