使用IDEA创建后端项目架构后,在连接MySQL数据库时出现各种问题的解决方法

1、创建Java后端框架

关于创建项目的文章有很多,这里就给大家提供一篇我认为通俗易懂且自己也按其步骤创建成功的创建项目的博客:IDEA创建springboot + mybatis项目全过程。这篇博客是比较详细的介绍了整个框架创建的过程。

2、连接数据库测试

接下来进入正题,我在成功创建项目之后通过连接数据库来测试后端是否能成功获取到数据库数据并且输出。

问题来了

1、端口号和主机ip地址的问题。正确做法看下图使用IDEA创建后端项目架构后,在连接MySQL数据库时出现各种问题的解决方法
2、在使用Postman时在后端中出现如下图的报错信息使用IDEA创建后端项目架构后,在连接MySQL数据库时出现各种问题的解决方法

关于这个问题的解决方法在网上有很多,这里我也找了一个我认为写的比较好的也是挺有用的博客:关于JDBC连接数据库时出现的Public Key Retrieval is not allowed错误
这些方法我用了第二个(因为简单)之后发现是我的数据库密码写错了,然后我尝试我认为对的几个密码后,发现我忘记密码了。。。。

莫得问题,密码而已嘛!忘记了就更改密码咯!更改密码的步骤如下:

以windows为例:

  1. 关闭正在运行的MySQL服务。 (到任务管理器中关闭)
  2. 打开DOS窗口(以管理员身份运行),转到mysql\bin目录。
  3. 输入mysqld --skip-grant-tables 回车(回车后这个DOS窗口不能动了)。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
  4. 再开一个DOS窗口,转到mysql\bin目录。
  5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
  6. 连接权限数据库: use mysql; 。
  7. 改密码:update user set password=password(“新密码”) where user=“root”;(别忘了最后加分号) 。
  8. 刷新权限(必须步骤):flush privileges;
  9. 退出 quit。
  10. 注销系统,再进入,使用用户名root和刚才设置的新密码登录。

如上方看不懂,网上关于修改MySQL数据库密码的博客有很多,大家可上网找。

3、不知为何,我更改密码不成功,想了一下数据库里也没啥,直接删除这个数据库重装算了!于是就开始了数据库的重装之旅。
(1)删除数据库(原数据库不删除干净会影响后面数据库的安装)

这点对于我个人有深刻体会。

此处附上下载和安装MySQL数据库的地址和教程:彻底删除原MySQL数据库和安装MySQL8.0.16数据库

在重装数据库时错误出现在安装的第四步,如下图中右边的第四个配置【Initializing Database】总是报错,这图显示的是成功的。使用IDEA创建后端项目架构后,在连接MySQL数据库时出现各种问题的解决方法
mysql8.0.15安装到第四步时出现Initializing Database报错。这篇博客很好的总结和解决了重装时遇到的问题。在重装时还有一个问题这个博客没有说到的,就是删除mysql数据库后服务名不会被删掉,这时在重装时如果服务名一样也会报错,删除服务名也很容易,一条语句就能搞定:

以管理员的身份打开DOS窗口,输入下面的语句然后回车就OK了
使用IDEA创建后端项目架构后,在连接MySQL数据库时出现各种问题的解决方法如有不懂者可点击下面的这篇博客来具体了解。
如何删除服务列表中的服务选项

到这数据库成功的安装上去了,我在mysql(我使用的是MySQL Installer - Community 的安装版,安装时会自带安装mysql workbench,可在上面编辑数据库)中创建好数据库和表,然后和后端连接以验证数据库和后端是否成功连接上。

不出意料,还是出现了问题:在postman中查找数据库数据时,后端反馈回一大串错异常信息:

java.sql.SQLException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

这是由于数据库时区与你电脑的时区不同导致的,对于这个有两个解决方法:

(1)直接在url后面增加:jdbc.url=jdbc:mysql://localhost:3306/seckill?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC

(2)有时上面的方法往往解决不了问题,就用最直接的办法:

使用mysql连接工具或者命令行工具都可以。我用workbench输入命令行:

select now(); 查看mysql系统时间。和当前时间做对比

set global time_zone = ‘+8:00’;设置时区更改为东八区

flush privileges; 刷新权限

然后退出后重新登录就可以了,显示当前时间和我现在的时间一致了。

到这完美的解决了问题。就因为一个密码就拉出一大片问题,可谓牵一发而动全身啊!

如文章中有错误请各位在评论去留言指正;有需要的小伙伴在观看这篇文章后仍没有解决你的问题,也可留言于评论区,我将尽力解答,谢谢。