Can''t connect to MySQL server on localhost (10061)解決方法
2024-07-24 12:40:44
供稿:網(wǎng)友
首先檢查MySQL 服務沒有啟動》如果沒有啟動,則要啟動這個服務。 昨天,重起服務器后出現(xiàn)MySQL 'localhost' (10061)錯誤,開始以為是因為數(shù)據(jù)庫鏈接打開過多,數(shù)據(jù)庫資源耗盡的緣故,但是重啟服務器以后,仍舊出現(xiàn)問題,于是在網(wǎng)上查找解決方法。大體如下: 解決辦法: 第一步 刪除c:/windows/下面的my.ini 第二步 打開c:/mysql/bin/winmysqladmin.exe 輸入用戶名 和密碼 第三步 在dos下 輸入 mysqld-nt -remove 刪除服務 在接著輸入 mysqld-nt -install 第四步 輸入mysql 啟動成功。 其它可參考的方法: 1.看看hosts文件中l(wèi)ocalhost是不是指向127.0.0.1 2.如果是沒啟動mysql服務,則可運行net start mysql。 3.一些相關(guān)命令: 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、如果你是虛擬主機用戶(購買的空間),則聯(lián)系空間商檢查 MySQL 是否正常啟動,并確認 MySQL 的配置信息(是否為 localhost); 2、如果你是獨立主機用戶(擁有管理主機權(quán)限),則按下面步驟檢查: 1)檢查磁盤空間是否還有剩余可用空間,盡量保持有足夠的磁盤空間可用。 2)檢查 my.ini 里的 basedir (MySQL 安裝地址) 和 datadir (數(shù)據(jù)目錄存放地址)等參數(shù)設置是否正確,然后重新啟動下 MySQL 服務。 還有一種方法是將服務器的windows補丁。 微軟9月9日發(fā)布了TCP/IP更新補丁(KB967723),如果服務器開啟自動更新或者有自動更新軟件下載更新了這個補丁,那么就會出現(xiàn)這個問題。 有人可能會問,為什么9號出現(xiàn)的補丁,到現(xiàn)在才發(fā)現(xiàn)問題? 大家都知道,服務器不是每天都重啟的,有的服務器可能一個月或者一年半載重啟一次,有的可能在9月9日以后重啟過服務器,所以補丁生效了(我個人這么認為)。 補丁卸載方法:登錄服務器,進入控制面板 --- 添加和刪除程序 -- (勾選上方的“顯示更新”) 在里面可以看到更新的KB967723這個補丁,然后就想卸載普通軟件一樣卸載,卸載中會提示你,如果卸載可能導致程序運行出錯,沒關(guān)系,選擇“是”,繼續(xù)卸載。 卸載完成后程序服務器,一切正常! 至于該補丁修補什么漏洞,卸載后是否會出現(xiàn)服務器安全隱患,這個先不說,要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. 正常情況下原因如下: 網(wǎng)站論壇訪問量過大,數(shù)據(jù)庫連接超過最大連接數(shù).MYSQL數(shù)據(jù)庫服務停止了. 解決方法(針對WIN系統(tǒng)): 1, 首先到系統(tǒng)服務里面找到MYSQL服務并啟動MYSQL服務. 2, 到MYSQL安裝目錄找到MY.INI文件,打開MY.INI查找max_connections 修改連接數(shù)為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用戶的密碼,這條命令能夠不經(jīng) 提示輸入原密碼而成功執(zhí)行,也說明了原密碼是空。之后使用修改后的密碼自然能夠成功登錄。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。怎么更改密碼? 首先要聲明一點,大部分情況下,修改MySQL是需要有mysql里的root權(quán)限的,所以一般用戶無法更改密碼 ,除非請求管理員。 方法一 使用phpmyadmin,這是最簡單的了,修改mysql庫的user表, 不過別忘了使用PASSWORD函數(shù)。 方法二 使用mysqladmin,這是前面聲明的一個特例。 mysqladmin -u root -p password mypasswd 輸入這個命令后,需要輸入root的原密碼,然后root的密碼將改為mypasswd。 把命令里的root改為你的用戶名,你就可以改你自己的密碼了。 當然如果你的mysqladmin連接不上mysql server,或者你沒有辦法執(zhí)行mysqladmin, 那么這種方法就是無效的。 而且mysqladmin無法把密碼清空。 下面的方法都在mysql提示符下使用,且必須有mysql的root權(quán)限: 方法三 mysql> INSERT INTO mysql.user (Host,User,Password) VALUES('%','jeffrey',PASSWORD('biscuit')); mysql> FLUSH PRIVILEGES 確切地說這是在增加一個用戶,用戶名為jeffrey,密碼為biscuit。 在《mysql中文參考手冊》里有這個例子,所以我也就寫出來了。 注意要使用PASSWORD函數(shù),然后還要使用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()函數(shù), 但是不需要使用FLUSH PRIVILEGES。 方法六 使用GRANT ... IDENTIFIED BY語句 mysql> GRANT USAGE ON *.* TO " IDENTIFIED BY 'biscuit'; 這里PASSWORD()函數(shù)是不必要的,也不需要使用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]節(jié)提供的用戶名和密碼: # mysql -udebian-sys-maint -p Enter password: <輸入[client]節(jié)的密碼> 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]節(jié)提供的密碼>