本地有一个现成的php网站但是数据库的账号密码啥的都和空间的不一样,本地web项目部署到服务器里连接不上数据库的解决办法...

今天突然想到把自己之前的项目挂到服务器上,但是用到了数据库,于是给服务器装上了MySQL,想着能赶紧把项目挂上去看看效果,然后并不是一帆风顺,在奋斗了四小时后终于解决了问题的所在。

(1)首先我找到了自己的期中考试题目,志愿者系统的增删改查。在装好数据库后我立刻将自己的项目打包并且放到tomcat里边,于是问题来了。

项目是在我本地写的,与数据库的连接当然也是本地的,所以,注册驱动时应该使用服务器对应的IP(如果数据库就在部署项目的服务器上则可以使用localhost),服务器上数据库的用户和密码,而我还是用的本机上的东西。

e725fdca62b4dcc07e3d66e92ac16e06.png

这是更改完的配置信息。

(2)再配置完后重新打包-->重新发布,发现还是不行,于是去找百度、学长、热心网友,在他们的指导下我学会了看tomcat里的错误报告(没错),原先以为放在服务器里项目没有编译器的情况下是看不到错误报告的,tomcat运行时可以看到错误报告!!!tomcat运行时可以看到错误报告!!!tomcat运行时可以看到错误报告!!!

ef8442c197ecf9740d4607b3eb95363b.png

(3)在错误报告的引导下发现是dao层在执行sql语句时出错,报出空指针错误,

7b0f7ca068d83318bf545f8cf2a6da26.png

于是可以猜测是连接没有获取到,进一步定位到了获取连接时出错了。

a33b1c557564483018fd29d0defad781.png

后来经过一系列的测试,找错了最后的错误原因----权限问题

fc8ab53d663bb37842a0099886943cbd.png

于是可以百度解决最后的问题了。

解决方法:

(1)登陆服务器,再登陆数据库

(2)找到名为“mysql”的库

(3)找到名为“user”的表

(4)在 “user” 中找到 “root” 所在的行,再将该行的 “Host” 中的 “localhost” 改为 “%”

(5) 刷新权限!!FLUSH PRIVILEGES

刷新权限!!FLUSH PRIVILEGES

刷新权限!!FLUSH PRIVILEGES

改完后效果如图

1535641ba920b9c59da18b1c3c6aa8d9.png

cmd下运行的命令为:

(1)use mysql;

(2)update user set host = '%' where user = 'root';

(3)FLUSH PRIVILEGES;

--------------------2019.12.31更新-------------------------

经过一段时间的理解和学习后,知道了为什么会出现之前的问题。

jdbc:mysql://IP地址:3306/database_name

注册驱动时连接数据库使用的地址是服务器的ip地址,那么即使数据库部署在了同一台服务器上,还是会通过远程连接的方式来连接数据库。所以问题就来了,远程连接的数据库权限不足,需要修改权限。

那么对于我来说,数据库部署的服务器和项目所部署到的服务器是同一台服务器,那么注册驱动时的地址就可以是localhost了,这样就不会出现权限的问题了。所以使用如下连接方式就可以了。

jdbc:mysql://localhost:3306/database_name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值