最近在做一个SpringMVC的demo,然而在IDEA连接数据库时出现了一堆bug,运行错误时报错如下:
[42S02][1146] com.mysql.jdbc.exceptions.jdbc.MySQL SyntaxErrorException: Table 'mysql.event' doesn't exist.Error encountered when performing Introspect schema library: Table 'mysql.event' doesn't exist.Table 'mysql.event' doesn't exist(1s476ms)
然后我打开本地的Navicat报错如下:本地计算机上的MySQL57服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止。
解决方式如下:
1、桌面左下角输入cmd
2、用cd命令进入安装mysql时的bin目录: cd C:\Program Files\MySQL\MySQL Server 5.7\bin (本人安装路径是 C:\Program Files\MySQL\MySQL Server 5.7\bin,一般默认也是这个路径)
3、初始化data文件: mysqld --initialize(这个要等半分钟时间,没反应别以为是卡机了啊啊啊)
4、启动服务:net start MySQL
如果结果显示:MySQL 服务器启动成功,则表明革命已经成功
但是革命一般比较艰辛,我的cmd输出提示服务名无效(或者没有启动mysql服务)
后来也是在网上找了答案发现原因是:因为net start +服务名,启动的是win下注册的服务。此时,系统中并没有注册mysql到服务中。即当前路径下没有mysql服务。
解决步骤如下:
1. 来到MySQL的安装路径下bin(cd 在系统中的目录地址)
2. 在命令行中输入mysqld --install
3. 执行 net start mysql:
如果显示MySQL服务器启动成功,那就成功啦,如果显示的是MySQL服务无法启动的话,就请删除mysql下的data文件,重新执行 mysqld --initialize 就可以在当前路径下生成data文件夹,
再执行net start mysql 就可以启动mysql。
然而,bug还是没有结束。。。当我打开Navicat之后,又出现1045- Unknown error 1045
解决步骤:
1.找到MySQL安装路径下的my.ini文件,用你的文本编辑器打开(Notepad++或者记事本都行);
如何找到my.ini文件呢?
在我的电脑的最上面的地址栏上输入%ProgramData%,找到ProgramData文件夹,然后打开MySQL文件夹,进入目录找到你下载的MySQL5.7文件夹,找到my.ini文件
2.打开后,找到mysqld这个位置,这个文件的内容中有多个mysqld
可以参考博文:https://blog.csdn.net/lzf_hlh/article/details/80885139
3.在 [mysqld] 底下添加语句:skip-grant-tables,添加完毕后保存。如果提示不让修改这个文件,则可将它复制到桌面,再用记事本打开它,添加完毕后,将桌面上的文件复制到原来的地方,赋值时选择替换目标文件;
skip-grant-tables作为启动参数的作用:MYSQL服务器不加载权限判断,任何用户都能访问数据库。
也就是说,启用这个参数之后,数据库的安全性会降低。
然而,在我重新打开我的Nacvicat之后,又报错 2003 -Can't connect toMySQL server on 'localhost'(10061)
解决步骤:
.在计算机右键 -> 管理 -> 服务 -> 查找 MySQL57 服务,启动;(不是启动MySQL)
最后打开Nacvicat,终于正常了。。。
然而,打开我的IDEA的时候,又发现SQL语句报错,当然是指没写错的情况啦,后来百度发现是数据库配置方言的问题
给大家附上博客地址吧:https://blog.csdn.net/LNView/article/details/85681171
最后终于完成了这一堆MySQL的问题,希望能给遇到像我一样bug的小伙伴一点帮助。