java写了一个服务器和客户端,在自己机器架了一个服务器,其他电脑上的客户端可以连接到我电脑上的服务器,但不能对我电脑上的数据库进行更新操作。说白点,其他电脑上的客户端链接我电脑上的服务器,类似登陆的操作可以发数据到服务器,由服务器对数据库进行查询,但是不能发修改数据到我电脑上的服务器让服务器对数据库进行更新。什么原因啊?还有,本机上的客户端可以发数据给服务器,让服务器对数据库进行更新。是不是因为数据库在我电脑上的原因啊?但是其他电脑上的客户端发过了的数据也是先由我电脑上的服务器接收后,服务器才对数据库进行更新啊?最后对数据库的操作还是有服务器来进行的啊?望高手解答啊,数据库是mysql数据库JavaMySQL服务器

解决方案 »

  1.   

    这种情况应该叫做bug,并不是架构的问题。只能设置断点+调试日志来看是什么问题了。你的客户端可以在本机操作却不能在远端操作,这乍一看是一个防火墙的问题,但你又说远端客户端能向服务器正常登陆,这表明数据通信通道并没有被阻塞,也就是说并非防火墙问题。所以剩下来问题有两种:如果程序是你自己写的,那就很可能是某个bug。如果不是你自己写的,你要好好研究它是否有对非本地(127.0.0.1以外)的IP进行了安全过滤(例如只能读不能写)。还有可能是你的服务器程序使用了客户端给的用户名和密码登陆了数据库,而数据库并没有设置它们的写权限(虽然不是很可能)。