问题收集帖
问题:
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将“&”当成了特殊符号
解决:
将&替换成&
问题:
在项目中有操作Mysql的语句都会被拒绝
问题分析:
mysql没有开启数据库的远程访问权限
解决:
1、改表法:
mysql -u root -p
mysql>use mysql;
mysql>
update
user
set
host =
'%'
where
user
=
'root'
;
mysql>
select
host,
user
from
user
;
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