无网不进  
软硬件开发

Cannot Connect to Database Server

缘由

由于不同的项目中使用的数据库用户名与密码出现了不一致的情况,在其中之前较早一个项目执行过程中出现“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天的问题终于以这样的方式结束了。

感触

      数据库要及时备份,否则后果不堪设想!

posted on 2017-11-23 13:02  无网不进  阅读(759)  评论(0编辑  收藏  举报