假设有一个sql语句
select LastName, FirstName,from Person
执行的时候会包错误
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from Person' at line 2.
这个错误是由于你执行update或者delete语句时,没有指定where条件,如果想忽略这个错误,则修改配置
SET SQL_SAFE_UPDATES = 0;
重新打开错误提醒
SET SQL_SAFE_UPDATES = 1;
权限错误,检查用户名密码是否正确,检查当前用户是否有权限访问数据。
open_files_limit是个系统的设置,table_open_cache必须比系统的这个配置小
这个错误通常有以下几个原因 1. 主键约束,Error Code: 1062. Duplicate entry ‘12’ for key ‘PRIMARY’,主键约束的数据必须是唯一的,解决的方法之一是设置主键是自增的,这样,插入数据时,设置主键的数据为NULL。 2. 唯一属性约束,Error Code: 1062. Duplicate entry ‘A’ for key ‘code’,这是你设置了数据是唯一的,但插入的数据和表中数据重复了,解决的方法是使用INSERT IGNORE代替INSERT,INSERT IGNORE插入数据的时候,如果重复了,就不做任何操作,也不报错,如果不重复,就和INSERT行为一致,插入数据。
当你访问数据时,可能会遇到这些错误。这是错误是由于mysql数据库内部错误引起的。比如:
MySQL error code 126 = Index file is crashed
MySQL error code 127 = Record-file is crashed
MySQL error code 134 = Record was already deleted (or record file crashed)
MySQL error code 144 = Table is crashed and last repair failed
MySQL error code 145 = Table was marked as crashed and should be repaired
mysql的bug,被攻击了,服务挂了,不正确的关闭mysql,损坏的数据都有可能造成这些问题。当这些错误发生时,数据就无法访问了,并且一直永久的无法访问。所以,最好把数据做好备份,如果你没有备份,可以尝试去修复mysql。如果存储引擎是MyISAM,使用CHECK TABLE和REPAIR TABLE命令(mysql>=5.7)。
CHECK TABLE <table name> ////To check the extent of database corruption
REPAIR TABLE <table name> ////To repair table
这通常意味着客户端和服务器之间的字符集处理不一致。
错误139可能意味着表定义中字段的数量和大小超过了一些限制。检查sql语句中异常长的字符串,异常大的整数等等
无法连接,如果服务正常启动,检查以下可能的项目 1、是不是防火墙的问题,关闭防火墙试试 2、检查mysql服务监听的IP 3、检查skip-name-resolve 4、检查socket文件路径
这个是由于你运行sql查询语句的序列不正确造成的,官方的解释
This can happen, for example, if you are using mysql_use_result() and try to execute a new query before you have called mysql_free_result(). It can also happen if you try to execute two queries that return data without calling mysql_use_result() or mysql_store_result() in between.
总结起来意思就是你查询了结果,但是却没有把结果获取下来。造成mysql server一直在等你把结果取走。
添加外键错误,检查外键关联的两个字段数据类型是否一致。
转载自我的博客:捕蛇者说