背景:使用SSM框架+MySql编写的网站,在windows平台上发布。
在自己服务器以及本地发布都正常,交付客户是,在他的阿里云服务器上部署出现以下两个问题:
1.安装Java和Tomcat之后,打包放入网站,启动Tomcat服务器,正常,没有任何异常,但是通过IP地址,或者Localhost访问网站,页面数据能正常显示,但是所有的css,js,图片等静态资源全部都不能加载,network显示500异常。
2.程序某些表中的文件查询没有结果,但是控制台输出的sql语句直接粘贴在图形化软件中,能查询出数据。注:只是某些表查不出来数据。
解决方案:
1.从防火墙,到网络限制,等等都考虑了,无果,最后从网上看到原因是Jdk1.8不支持Spring3.x,无奈将1.8删除,安装1.7,然后正常了,接下来出现了2的问题。
2.删除数据库,重新导入数据文件,远程粘贴数据表,等等,也是尝试N多方案,最后想起来我新建数据库的时候没有选择字符编码,当时考虑会使用默认的编码方式(因为我安装数据库的时候都选择默认编码方式utf-8,有的mysql版本支持选择,有的不支持。),谁知道这个数据库别人没有选择,所以我又将数据库编码方式修改为utf-8,如下图
,然后重启服务器,还是查不出来!!!!
前前后后折腾了几个小时,最后大神给了思路,数据库配置文件里的连接字符串是不是没加字符集编码方式?一看果真是,然后在链接url的数据库名后加了?useUnicode=true&characterEncoding=UTF-8
然后重启,尼玛总算正常了!
最后我只想说:以后所有的数据库连接字符串我都要加:
useUnicode=true&characterEncoding=UTF-8
useUnicode=true&characterEncoding=UTF-8
useUnicode=true&characterEncoding=UTF-8
终结!!!!!