king

Can't connect to MySQL server on localhost (10061)解决方法

king Mysql 2018-05-16 2703浏览 0

首先检查MySQL 服务没有启动?如果没有启动,则要启动这个服务。(启动服务就不说了哈) 


重起服务器后出现MySQL 'localhost' (10061)错误,开始以为是因为数据库链接打开过多,数据库资源耗尽的缘故,但是重启服务器以后,仍旧出现问题,于是在网上查找解决方法。大体如下: 


解决办法: 

第一步 :

删除c:\windows\下面的my.ini 

第二步 :

打开c:\mysql\bin\winmysqladmin.exe 输入用户名 和密码 

第三步:

 在dos下 输入 mysqld-nt -remove 删除服务 

在接着输入 mysqld-nt -install 

第四步 :

输入mysql 启动成功。 

其它可参考的方法: 

1.看看hosts文件中localhost是不是指向127.0.0.1 

2.如果是没启动mysql服务,则可运行net start mysql。 

3.一些相关命令: 

mysqld-nt --install #启动Mysql 

mysql #运行Mysql 

mysql -h ipAddress -u username -p 

或者:直接去bin里点mysqld.exe或mysqld-nt.exe,看下它的进程能否正常运行,如不行,再去控制面板,服务里去启动它,看下是什么错误。如果不行,就在添加删除里删去mysql,然后再重装mysql,一般都能解决问题,可以在安装前备份一下DATA。 


Error: Can't connect to MySQL server on 'localhost' (10061) 

Errno.: 2003 

错误编号:2003 

问题分析: 

无法连接到 MySQL 服务器,可能的情况为: 

1、MySQL 服务没有启动,一般是在异常的情况下 MySQL 无法启动导致的,比如无可用的磁盘空间,my.ini 里 MySQL 的 basedir 路径设置错误等; 

2、MySQL 服务器资源紧张,导致无法连接。 

解决方法: 

1、如果你是虚拟主机用户(购买的空间),则联系空间商检查 MySQL 是否正常启动,并确认 MySQL 的配置信息(是否为 localhost); 

2、如果你是独立主机用户(拥有管理主机权限),则按下面步骤检查: 

1)检查磁盘空间是否还有剩余可用空间,尽量保持有足够的磁盘空间可用。 

2)检查 my.ini 里的 basedir (MySQL 安装地址) 和 datadir (数据目录存放地址)等参数设置是否正确,然后重新启动下 MySQL 服务。 

还有一种方法是将服务器的windows补丁。 

微软9月9日发布了TCP/IP更新补丁(KB967723),如果服务器开启自动更新或者有自动更新软件下载更新了这个补丁,那么就会出现这个问题。 

有人可能会问,为什么9号出现的补丁,到现在才发现问题? 

大家都知道,服务器不是每天都重启的,有的服务器可能一个月或者一年半载重启一次,有的可能在9月9日以后重启过服务器,所以补丁生效了(我个人这么认为)。 

补丁卸载方法:登录服务器,进入控制面板 --- 添加和删除程序 -- (勾选上方的“显示更新”) 

在里面可以看到更新的KB967723这个补丁,然后就想卸载普通软件一样卸载,卸载中会提示你,如果卸载可能导致程序运行出错,没关系,选择“是”,继续卸载。 

卸载完成后程序服务器,一切正常! 

至于该补丁修补什么漏洞,卸载后是否会出现服务器安全隐患,这个先不说,要MYSQL正常运行,临时的解决办法只有如此。 


还有种情况下,你可以这样解决 

Discuz! info: Can not connect to MySQL server 


Time: 2007-11-13 6:25pm 

Script: /bbs/index.php 


Error: Can't connect to MySQL server on 'localhost' (10061) 

Errno.: 2003 


Similar error report has beed dispatched to administrator before. 

正常情况下原因如下: 

网站论坛访问量过大,数据库连接超过最大连接数.MYSQL数据库服务停止了. 


解决方法(针对WIN系统): 

1, 首先到系统服务里面找到MYSQL服务并启动MYSQL服务. 

2, 到MYSQL安装目录找到MY.INI文件,打开MY.INI查找max_connections 修改连接数为1000 重启IIS与MYSQL服务.


window 下 

命令行下输入: 

>cd E:\mysql\bin 

>mysqladmin -u root password 你的密码 

>mysql -u root -p 

Enter password: 你的密码 

便可以 


、、、、、、、、、、、、、、、、、 

找到了根本原因,在此凉一下: 


导致此问题的根源在:因为给mysql的root设置了密码,而不是最初安装好时的密码为空,所以使用 


mysqladmin version这样子不行了,必须这样子:mysqladmin -uroot -p version,回车后按照提示要求输入 


root密码即可成功运行命令。 


第一种方法其实就是在不知道root密码的情况下的一种解决办法,那样子启动不用密码即可进mysql 


里面并进行root密码的修改,解决忘记了root密码的问题。 



输入命令“mysqladmin -u root password 你的密码”作用是修改root用户的密码,这条命令能够不经 


提示输入原密码而成功执行,也说明了原密码是空。之后使用修改后的密码自然能够成功登录。 




。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。怎么更改密码? 

首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的,所以一般用户无法更改密码 


,除非请求管理员。    


方法一 

  使用phpmyadmin,这是最简单的了,修改mysql库的user表, 

  不过别忘了使用PASSWORD函数。 

  方法二 

  使用mysqladmin,这是前面声明的一个特例。 

  mysqladmin -u root -p password mypasswd 

  输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。 

  把命令里的root改为你的用户名,你就可以改你自己的密码了。 

  当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin, 

  那么这种方法就是无效的。 

  而且mysqladmin无法把密码清空。 

  下面的方法都在mysql提示符下使用,且必须有mysql的root权限: 


  方法三 

  mysql> INSERT INTO mysql.user (Host,User,Password) 

  VALUES('%','jeffrey',PASSWORD('biscuit')); 

  mysql> FLUSH PRIVILEGES 

  确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。 

  在《mysql中文参考手册》里有这个例子,所以我也就写出来了。 

  注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。 

  方法四 

  和方法三一样,只是使用了REPLACE语句 

  mysql> REPLACE INTO mysql.user (Host,User,Password) 

  VALUES('%','jeffrey',PASSWORD('biscuit')); 

  mysql> FLUSH PRIVILEGES 

  方法五 

  使用SET PASSWORD语句, 

  mysql> SET PASSWORD FOR " = PASSWORD('biscuit'); 

  拟也必须使用PASSWORD()函数, 

  但是不需要使用FLUSH PRIVILEGES。 

  方法六 

  使用GRANT ... IDENTIFIED BY语句 

  mysql> GRANT USAGE ON *.* TO " IDENTIFIED BY 'biscuit'; 

  这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。 

  注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。 

  MySQL 忘记口令的解决办法 

  如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。 

  启动 MySQL :bin/safe_mysqld --skip-grant-tables & 

  就可以不需要密码就进入 MySQL 了。 

  然后就是 

  >use mysql 

  >update user set password=password("new_pass") where user="root"; 

  >flush privileges; 

  重新杀 MySQL ,用正常方法启动 MySQL 。 


linux下 

方法一: 

# /etc/init.d/mysql stop 

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 

# mysql -u root mysql 

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root'; 

mysql> FLUSH PRIVILEGES; 

mysql> quit 


# /etc/init.d/mysql restart 

# mysql -uroot -p 

Enter password: <输入新设的密码newpassword> 


mysql> 



方法二: 

直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码: 

# mysql -udebian-sys-maint -p 

Enter password: <输入[client]节的密码> 

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root'; 

mysql> FLUSH PRIVILEGES; 

mysql> quit 


# mysql -uroot -p 

Enter password: <输入新设的密码newpassword> 


mysql> 



方法三: 


# mysql -uroot -p 

Enter password: <输入/etc/mysql/debian.cnf文件中[client]节提供的密码> 


继续浏览有关 mysql10061rootphpmyadmin2003 的文章
发表评论