过程就不过多描述了,直接上干货
1.多数据源使用问题
首先在yml中配置,数据源。使用的话在service实现类、或方法上使用注解:
@DataSource(DataSourceType.SLAVE)
在其他地方使用是无效的。最考虑到service有可能会调不同的库,将注解放在mapper上,结果不能访问到从库。
2.部署到服务器报错:org.quartz.SchedulerException: Couldn't get host name!
- 查看主机名(命令) : hostname
- 打开hosts文件: vim /etc/hosts
- 确保有: 127.0.0.1 后跟上面用hostname命令查看到的主机名,如果没有则加上。如:127.0.0.1 hostname
3.服务器报错:大致意思就是定时任务找不到对应的数据库表
仔细看会发现数据表都是有的,只是数据库表名都是小写的。而程序查找的时候表名都是大写的。解决方案如下:
- 找到mysql的配置文件。
- vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 在[mysqld]节点下,加入一行: lower_case_table_names=1
lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的
4.页面刷新404问题(vue路由history模式刷新404)
location / {
try_files $uri $uri/ @router;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
index index.html index.htm;
}
#对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
#因此需要rewrite到index.html中,然后交给路由在处理请求资源
location @router {
rewrite ^.*$ /index.html last;
}
#.......其他部分省略