首页 > 技术文章 > 问题收集帖

shigeng 2018-08-10 17:58 原文

问题:

Bean named 'fruitImpl' is expected to be of type 'org.music.impl.FruitImpl'
but was actually of type 'com.sun.proxy.$Proxy19'

错误分析:

出现该异常是由于使用了默认的jdk的自动动态代理,需要在<aop:aspectj-autoproxy中添加proxy-target-class="true"
如下:<aop:aspectj-autoproxy proxy-target-class="true"/> ,即表示使用AspectJ的支持。


问题:

expected single matching bean but found 2: fruitImpl,testFruit

错误分析:

这是由于我用testFruit去继承fruitImpl类,出现了自动装配上的错误,只要在自动装配的类上
加上一条注释:@Qualifier("fruitImpl")即可

 

问题:
/usr/local/webserver/mysql/bin/mysqld:

 

Can't create/write to file '/usr/local/webserver/mysql/mysql.pid'
(Errcode: 13 - Permission denied)

mysql没有权限向mysql这个文件夹写入,那么就需要给他设置权限
解决链接:https://blog.csdn.net/zhldt2008/article/details/54911714

 

配置mysql的环境,可以在任意地方输入命令执行mysql的命令
链接:https://www.cnblogs.com/luckycn/p/7289995.html

配置mysql下root的密码:
链接地址:https://zhidao.baidu.com/question/1605583523236548867.html

linux上配置软件环境:
https://www.cnblogs.com/lhbryant/p/6928894.html

linux上git缺失bin命令配置:
https://www.linuxidc.com/Linux/2012-07/66270.htm

 

问题:

Error creating bean with name '(inner bean)#6a345f16':

原因分析:

我想创建一个advice,然后创建了一个aspectj类型的类,接着把这个标识符改成了class,中间的过程略过,之后

运行服务器跳出这个错误,花费了二十分钟才找到这个错误的位置,是通过运行后的target文件里边发现没有这个

类,所以我删除了这个类,重新建,问题解决。

 

问题:

在将一些类使用gson转换成json的时候,空值的属性会被忽略

 

解决方法:

使用gson的另一种创建方法: GsonBuilder().serializeNulls().create(),这样可以序列化空值

 

 

问题:

有个有意思的情况,就是当我通过ID进行查询筛选数据的时候,发现输出结果只有一个字段是有数据的,其他字段全部都显示NULL

 

问题分析与解决方法:

我先将控制台输出的SQL语句放入mysql中直接执行,发现是能正常输出我需要的结果,那么原因在哪呢,SSM框架里,因为有关数据库的操作

都是通过映射文件+接口+javabean实现的,数据的获取和设置依赖于javabean类的set和get方法,那么很有可能是这个地方出了问题,这边我的命名

方式是out_trade_noSet与out_trade_noGet,变量的设置不符合JAVA语言规范,JAVA语言规范应该是驼峰式的,然后我将下划线去掉,改成

outTradeNoSet的方式,然后运行程序,控制台输出正确结果。

 

 

问题:

mysql 报错Could not retrieve transation read-only status server

 

解决:

mysql驱动的版本有问题,我把驱动6.0.6换成8.0.12成功解决

 

问题:

The last packet successfully received from the server

问题分析:

应用程序在这个已经坏掉的数据通道上发起对DB的读写请求

 

解决:

 如果使用的是JDBC,在JDBC URL上添加?autoReconnect=true

如果是在Spring中使用DBCP连接池,在定义datasource增加属性validationQuery和testOnBorrow

 如果是在Spring中使用c3p0连接池,则在定义datasource的时候,添加属性testConnectionOnCheckin和testConnectionOnCheckout:

  <property name="testConnectionOnCheckin" value="false"/>

  <property name="testConnectionOnCheckout" value="true"/>

参考链接:

https://blog.csdn.net/dxswzj/article/details/42778031

 

问题:

Access denied for user 'root'@'localhost'_Mysql

 

问题分析:

数据库拒绝用户对于数据库的请求,说明用户没有对数据库操作的权限

 

解决:

  1、打开命令行窗口,在bin目录下使用mysqld-nt.exe启动,即在命令行窗口执行:mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 
    然后另外打开一个命令行窗口,登录mysql,此时无需输入mysql密码即可进入。

  2、UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';

  3、刷新mysql与权限有关的表  flush privileges

  4、GRANT ALL ON *.* TO 'root'@'localhost';

参考链接:https://www.jb51.net/article/72395.htm

 

问题:

忘记数据库密码,需要修改数据库密码

 

解决:

进入

mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 

use mysql;

UPDATE user SET Password=PASSWORD('newpassword') where USER='root'; 
FLUSH PRIVILEGES; 

参考链接:https://edu.aliyun.com/a/18005

 

问题:

Intellij IDEA——Unescaped & or nonterminated character/entity reference

 

问题分析:

IDEA将“&”当成了特殊符号

解决:

将&替换成&amp;

 

问题:
在项目中有操作Mysql的语句都会被拒绝

问题分析:

mysql没有开启数据库的远程访问权限

解决:

1、改表法:

mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2、授权法:
//赋予任何主机访问数据的权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION

//你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI  TH GRANT OPTION;

//如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

刷新mysql与权限有关的表  flush privileges

参考链接:https://www.jb51.net/article/85218.htm

 

推荐阅读