Can”t connect to MySQL server on localhost (10061)解決方案

來源:互聯網
上載者:User

首先檢查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]節提供的密碼>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.