zoukankan      html  css  js  c++  java
  • 业务开发(一)—— MySQL

    0x01、SQL异常Incorrect string value

    java.sql.SQLException: Incorrect string value: 'xE6x88x91xE7x9Ax84...' 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中类的路径。

  • 相关阅读:
    关于iframe页面里的重定向问题
    iframe跨域解决方案
    sql 查询优化小计
    年轻不能遇见太惊艳的人
    图片上传预览
    脚本
    前端常见跨域解决方案
    react
    react高阶组件
    React + MobX 状态管理入门及实例
  • 原文地址:https://www.cnblogs.com/fonxian/p/5662665.html
Copyright © 2011-2022 走看看