tomcat网站迁移后MySQL数据库个别字段中文变问号??

阿梨 11月前 22400

工作问题记录,方便自己以后遇到同样问题后查找。


事情起因:

最近需要将公司内部使用的一个web项目转移部署到新的电脑上面。

转移后发现当网站用户登录后,用户名显示是正常的。

但是数据库内的用户名却变成了问号。


问题排查过程:

1.一开始怀疑是数据库的编码和网页编码不一致导致的,但是通过MySQL管理工具,各种对比数据库的设置,都是utf8编码,网页也是utf8编码,实在找不到不一致的地方。

2.然后怀疑是网页代码有问题,因为项目是离职员工用java开发的,网上各种查找教程排查代码,还是摸不着头脑,找不到修改这个用户名的代码,只看到了查询。


重新梳理问题:

1.之前一个小问题的启示:

无奈,于是又重新考虑是数据库编码问题,因为网页代码没有变动,各种页面加载都是正常的,没道理会出这个问题。

加上转移数据的时候就出现过用户权限不正常,后排查发现是数据库里用户权限表没有转移正确,当时以为是工具一键同步的,还反复比对了好几次数据,没发现有两个表的数据没正确同步。

出了问题后,再次同步转移数据库数据,检查同步日志,才发现有错误提示。根据提示发现问题,解决了数据库同步权限数据错误的问题。


2.那现在就数据库的嫌疑比较大了,因为数据库编码导致乱码的问题很常见,加上前面同步问题。然后想到自己的web服务是整个文件夹复制过来的,网站页面加载运行都正常。

自己的MySQL服务是重新下载的同版本数据库程序解压安装的,只同步了一个数据。

搜索相关数据库编码问题的时候,看到了一个my.ini 文件的配置。突然想到自己确实在旧电脑上面看到了这个文件,但是因为新机器上是新安装的数据库程序,没看到这个文件,所以就没有管。


解决方法:
复制旧my.ini文件到新机器上,重新运行MySQL服务,完美解决!用户名正常加载了。


参考文章资料

1.

MySQL中出现内容显示问号的问题解决方法(mysql中内容显示问号)

2.

mysql5.7以上版本配置my.ini的详细步骤


最新回复 (0)
返回
发新帖