一、注解问题
1.@RequestParam和@RequestBody
- @RequestParam用来获取url中的动态参数,content-type为application/x-www-form-urlencoded或multipart/form-data,解析后数据格式为aaa=111&bbb=222,拼接在url后发起请求。适用于GET,拼接后请求url为http://localhost:8081/xxx?aaa=111&bbb=222;
注:@PathVariable也用于GET,定义参数“aaa”传值aaa=111后,请求url为http://localhost:8081/xxx/aaa=111,注意区别。 - @RequestBody用来获取body参数,代码里处理HttpEntity传递到的数据,content-type为application/json。适用于POST。
2.报错No serializer found
实体类前加上如下注解:
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
二、mysql(敲里来来!!!!!)
1. 本地启动mysql时,提示:The server quit without updating PID file (/usr/local/mysql/data/xxx.pid)
解决步骤如下:
- 终端通过如下指令先停止mysql服务。
sudo /usr/local/mysql/support-files/mysql.server stop
pkg安装的mysql,安装完后偏好设置下应该都是启动的状态,需要先停下mysql,但注意!!不要在偏好设置下点stop,这个操作,很可能不能完全停止所有mysql服务,导致后续操作都不能正常进行,血的教训!
- 安全模式重启服务
进入mysql/bin,sudo su进入sh-3.2#模式,再以安全模式进入数据库
./mysqld_safe --skip-grant-tables &
- 重置密码
a.新开终端(非常!!重!!!要!!!!!),输入mysql -uroot -p进入mysql,提示输入密码时,若之前未设置过则随意输入,设置过则输入正确密码(这一步,若密码一直错误,可尝试输入mysql -u -root直接进入mysql)。
b.输入如下指令查询账号信息,别忘了末尾“;”,
select host,user,authentication_string from mysql.user;
查询结果里若root用户authentication_string字段下有内容,先将其设置为空,
use mysql;
update user set authentication_string='' where user='root';
否则直接进行下一步。
c.输入如下指令修改root密码
ALTER user 'root'@'localhost' IDENTIFIED BY 'password1%';
引号内为要设置的password,需包含大小写字母和特殊符号。
- 刷新权限
flush privileges; - 关掉新开的终端,重新打开一个终端,输入mysql -uroot -p登录即可。
2.Navicat连接本地数据库失败(我的报错为61)
确认本地数据库启动无误的前提下,查看连接属性advanced下use socket file,若为勾选,则勾选上,文件路径默认显示/tmp/mysql.sock,再尝试连接即可。
网友评论