0x01、SQL异常Incorrect string value
java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName'
修改数据库表的编码以及表中字段的编码,改为utf-8
0x02、mysql,获取当前时间几小时或几天之前的时间
select date_sub(now(), interval 1 hour);
0x03、Data truncation: Truncated incorrect DOUBLE value
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value:
update user set pay_password = #{payPassword},salt = #{salt} where id = #{id}
update设置的值之间用,而不是and
0x04、数据库满了或者连接拒绝
重启本地数据库服务器或者找方法解决数据库满了的问题
0x05、没有合适的驱动
java.sql.SQLException: No suitable driver found for jdbc:mysql:
0x06、数据库查询缓慢
之前修改过一个表,它原先的思路是先在一个表中选出20条记录,然后再与多个表进行联表查询,而我改完之后呢,是将第一个表中所有记录都和多个表联表查询完之后,再选出20条记录,最后因为第一个表有上万条数据,查询一次都要两分多钟。
所以联表查询时,一定要缩小表的范围,让小表来联大表。
0x07、Column 'rule_id' in field list is ambiguous
例如两个表中都有rule_id这个字段,你指定rule_id的时候,必须指明a表还是表rule_id
0x08、权限问题
显示当前用户权限
mysql> show grants;
给某个用户权限
grant select,insert,update,delete,create,drop on `management`.* to 'xxxx'@'%';
0x09、使用show grants命令显示有创建修改表的权限,而在navcat上报 ERROR1005、1060错误
原因是/mnt/data/mysql文件夹的权限没有设置。
0x10、1040 Too many connections
find / -name my.cnf 或 cd /etc/my.cnf
将最大连接数增大,由500改为5000然后重启mysql,解决问题
max_connections=500
service mysqld restart
0x11、在navcat上修改表的id为自增,但使用插入语句还是会提示id没有默认值
field id doesnt have a default value
解决方法:在navcat上改变了表的字段或者结构,需要点击保存,否则不能生效。
0x12、SQL语句错误,提示:"#1241 - Operand should contain 1 column(s)"错误
select a.id from
(
select * from user where nickname is not null and head_image_url is not null
)a
join weixin_user b
on a.id = b.user_id
where a.id
not in(
select * from coupon_record a
join coupon b
on a.coupon_id = b.id
where send_type = 2)
将select * from coupon_record a中的*改为id
0x13、Got error 28 from storage engine
数据库出现这个提示,表示mysql的磁盘满了。运行tomcat时可能会出现,控制台日志卡在一个mysql查询记录上。
解决方法就是清理磁盘。
0x14、Every derived table must have its own alias
select * from (
(
select rule_id,rule_name,owner_id,category_id,average_score,downloads from rule_details
where owner_id = 'xxxxx'
order by RAND() desc limit 12)
union
(
select rule_id,rule_name,owner_id,category_id,average_score,downloads from rule_details
where category_id = (select category_id from rule_details where rule_id = 'xxxxx')
and rule_id <> 'xxxxxx'
order by RAND() desc limit 12)
每个派生出来的表都必须有一个自己的别名
改成
(
select rule_id,rule_name,owner_id,category_id,average_score,downloads from rule_details
where owner_id = 'xxxxx'
order by RAND() desc limit 12
)
union
(
select rule_id,rule_name,owner_id,category_id,average_score,downloads from rule_details
where category_id = (select category_id from rule_details where rule_id = 'xxxxx')
and rule_id <> 'xxxxxx'
order by RAND() desc limit 12
)
0x15、显示没有数据库的驱动,启动数据库服务
重启mysql服务
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
0x16、按权重排序
1.select * from tbl_actor order by (follower_count+Recommend_weight)*weight_ratio desc limit 3;
2.order by (follower_count+Recommend_weight)*weight_ratio
3.可用于根据权值,做推荐列表用。
1、同样的登录代码,我这边可以正常登录,同事那边不断重定向,无法登陆成功
原因是,shiro的账号权限设置,如果账号未激活,会循环重定向。
<mvc:interceptors>
<mvc:interceptor>
<mvc:exclude-mapping path="/Manage/"/>
</mvc:interceptor>
</mvc:interceptors>
2、Controller层以JSON的形式返回一个List对象,如果这个对象是null,前端则接收不到。
解决方法
return list == null ? new ArrayList<Object>() : list;
9 You can't perform any operations on this connection. It has been automatically closed by Proxool for some reason
跟数据库服务器的配置有关,一般重启几次就好,尤其是如果一个函数有加事务,你在调试的过程中很容易出现这个报错。
10 修改xml文件,不管怎么修改,在服务器上得到的结果都是不对的
原因很可能是所做的修改没有生效,在服务器上修改xml文件,必须重启才能生效。
14 发送验证码不能发送成功,返回100001,(云之讯)
解决方法:根据已有的信息去查100001所代表的意思,http://docs.ucpaas.com/doku.php?id=rest_error,
原因是账户的余额不足,所以不能发送短信。
15 控制台提示找不到类
1、maven install 一下
2、很可能是配置文件的路径不对,比如说xml中类的路径。