缘由
由于不同的项目中使用的数据库用户名与密码出现了不一致的情况,在其中之前较早一个项目执行过程中出现“The user specified as a definer ('root'@'localhost') does not exist”的错误提示。经过网络一番搜索,原因是root用户不存在,故自己将用户名改回到之前的用户名,结果出现连接不到数据库的情况,如下图所示:
原因
1.可能数据库服务没有启动
2.可能指定的数据库连接用户名或密码不正确
3.可能数据库连接语句写得不正确
4.可能数据库中没有指定的数据库存在
5.可能没引sql包或没有驱动程序
解决方法
Mysqlbin目录: C:\Program Files\MySQL\MySQL Server 5.7\bin
mysql -u root -p
删除原来的数据库实例后,创建新的实例,发现还是无法连接数据库,如下所示:
还是搞不定,明天继续,还是对mysql认知度太低!...........
将错误原因逐一排除,关闭重启mysql服务,发现还是无法登录,自己也就纳了闷了。
将mysql服务关闭后,可以进入workbench,但是还是无法连接mysql,这个是必须的。根据下图可获知mysql配置文件my.ini位置:
网上居然有人建议重新安装,忍不住要爆粗口了!你妹的!这是解决问题吗?不到万不得已的时候,谁会选择重装这条道路呢!
Can't connect to MySQL server on '127.0.0.1' (10061)
检查密码对否
如何知道密码对否?
密码错误的话会提示密码不对
查看一下你的hosts的文件
Hosts文件位置:C:\Windows\System32\drivers\etc
难道是端口的问题?于是用telnet 127.0.0.1 3308测试端口,结果它竟然提示:
my.ini中确实用的是3308端口,用netstat -an查看,3308处于如下TIME_WAIT超时状态:
那到底是什么原因呢?
在项目中测试发现也是提示“Host 'localhost' is not allowed to connect to this MySQL server”!要崩溃了。
启动mysql服务,出现下图错误:
重启计算机解决问题。
还是无法连接到数据库!
不要逼我,否则,我真的要重装数据库了!
尝试无果后,重装!
卸载过程中由于没卸载干净,导致安装时又出现了一系列的问题。悲剧!
Mysql卸载教程:点击查看
Mysql安装教程:
http://database.51cto.com/art/201304/387439.htm
第二天........
继续卸载、安装,我就不信弄不好它!
为防止重装系统后重装数据库,将其安装在C盘之外的其它目录中。
安装过程中出现了如下错误:
网络搜寻各种方法,还是未能解决问题。
再次转换思路,换个版本试试,其中尝试了5.7.10.但其是zip格式,解压后还需配置一系列的文件,尝试无果后,使用了低版本的5.5.47,msi格式,这是傻瓜式安装方式还是比较方便的。第一次安装后,自己曾试图将之前的数据库恢复,无果而终,并且导致无法更改用户名,又是一顿狂卸载,安装,第二次之后,用户名可以正常更改。经测试,一切正常!
折磨自己将近3天的问题终于以这样的方式结束了。
感触
数据库要及时备份,否则后果不堪设想!