sql语句创建mysql数据库常见错误以及解决方法

Error Code: 1366. Incorrect string value: '\xE5\xAD\xA6\xE5\xB7\xA5...'
    将该表中的每一列的字符集都改为utf-8
    SQL语句:alter table dept change loc loc varchar(50) character set utf8;

Error Code: 1062. Duplicate entry '40' for key 'PRIMARY'    
    设置主键自增时,和设置主键时可能有粗心的同学和我一样就是将一个表中的有两个相同值的属性设为主键这时就会报错。解决方法很简单就是保证设置主键属性下的值不能相同即可。

Error Code: 1005. Can't create table 'book.bookinfo' (errno: 150)    
     在mysql 中建立引用约束的时候会出现MySQL ERROR 1005: Can't create table (errno: 150)的错误信息结果是不能建立 引用约束。
         出现问题的大致情况
       1、外键的引用类型不一样,如主键是int外键是char
    2、找不到主表中引用的列

    3、主键和外键的字符编码不一致,也可能存储引擎不一样

Error Code: 1146. Table 'book.book' doesn't exist    

INNODB是MYSQL数据库一种流行的数据库引擎,支持事务(行级),在企业级应用上成为可能

ibdata用来储存文件的数据,而库名的文件夹里面的那些表文件只是结构而已,由于新版的mysql默认试innodb,所以ibdata1文件默认就存在了,少了这个文件有的数据表就会出错。

可以尝试修复数据库:repair table tablename

Error Code: 1452. Cannot add or update a child row

原因:

设置的外键和对应的另一个表的主键值不匹配。

解决方法:

找出不匹配的值修改。

或者清空两表数据。

Error Code: 1136. Column count doesn't match value count at row 1

由于写的SQL语句里列的数目和后面的值的数目不一致,

比如insert into 表名 (field1,field2,field3) values('a','b')这样前面的是三列,后面却只有二个值,这就会出现这个错误的。

    Error Code: 2013. Lost connection to MySQL server during query

一般这种情况可能的原因:

1.数据库太大,导致服务器超时了并且关闭了连接。这种情况你可以通过修改mysql的超时配置来改善,如interactive_timeout、wait_timeout、max_allowed_packet。

2.也有可能是你访问的数据库表有问题,这种情况一般就是只当你访问某个表才会出现这个问题,那么你可能需要修复下该表。

以下是 mysql用户手册 中的相关资料:

18.2 使用MySQL时的一些常见错误

18.2.1 MySQL server has gone away错误

本小节也涉及有关Lost connection to server during query的错误。

对MySQL server has gone away错误最常见的原因是服务器超时了并且关闭了连接。缺省地,如果没有事情发生,服务器在 8个小时后关闭连接。你可在启动mysqld时通过设置wait_timeout变量改变时间限制。

你可以通过执行mysqladmin version并且检验正常运行的时间来检查MySQL还没死掉。

如果你有一个脚本,你只须再发出查询让客护进行一次自动的重新连接。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值