這時(shí)候我的大腦真是一片空白,畢竟前幾天測(cè)試都是沒(méi)有問(wèn)題的匆光,為什么會(huì)突然間出現(xiàn)這種情況贸铜。首先我想的到的是難道連接數(shù)據(jù)庫(kù)的文件出現(xiàn)了問(wèn)題嗎聪廉,但代碼不可能無(wú)緣無(wú)故的改變吧況且之前后臺(tái)都是沒(méi)問(wèn)題并結(jié)合報(bào)錯(cuò)的日志來(lái)看我排除了后臺(tái)代碼出錯(cuò)的原因。在確定了android訪問(wèn)代碼也沒(méi)有問(wèn)題后我只能重啟計(jì)算機(jī)并用Navict for Mysql打開(kāi)數(shù)據(jù)庫(kù)酥馍,然而我就得到了這個(gè)
用戶名或密碼錯(cuò)誤登錄失敗辩昆。
莫名其妙?旨袒?汁针?天天使用mysql怎么可能出現(xiàn)這種錯(cuò)誤,瞬間絕望砚尽。難道只能重裝數(shù)據(jù)庫(kù)了嗎施无,里面有重要信息而且重裝麻煩所以卸載是不可能的!在保證用戶名和密碼都正確的前提下我想猜想了導(dǎo)致錯(cuò)誤的原因:
- 反復(fù)向后臺(tái)請(qǐng)求數(shù)據(jù)導(dǎo)致mysql出錯(cuò)
- 存在其他軟件占用了3306端口
我結(jié)束了AndroidStudio與MyEclipse的進(jìn)程必孤,并把PhpStorm都給卸載了猾骡,再次打開(kāi)mysql還是報(bào)1045錯(cuò)誤。只能嘗試修改密碼了。
首先先找到mysql.exe安裝路徑
打開(kāi)cmd并輸入cd復(fù)制路徑
然后輸入命令 mysqld --skip-grant-tables 回車卓练,此時(shí)就跳過(guò)了mysql的用戶驗(yàn)證隘蝎。注意輸入此命令之后命令行就無(wú)法操作了,此時(shí)可以再打開(kāi)一個(gè)新的命令行襟企。注意:在輸入此命令之前先在任務(wù)管理器中結(jié)束mysqld.exe進(jìn)程嘱么,確保mysql服務(wù)器端已結(jié)束運(yùn)行。如果沒(méi)有結(jié)束是不能生效的顽悼。
打開(kāi)新的cmd再次進(jìn)入到路徑中輸入mysql
2.png
在我以為可以跳開(kāi)驗(yàn)證修改密碼時(shí)曼振,我發(fā)現(xiàn)我還是太年輕再次報(bào)出1045!但是和之前報(bào)錯(cuò)不同之前一直都是denied for user 'root'這次變成了denied for user 'ODBC'
退出cmd重新進(jìn)入輸入mysql
這次報(bào)錯(cuò)又不一樣了報(bào)的是2003數(shù)據(jù)庫(kù)未啟動(dòng)蔚龙,當(dāng)我重新啟動(dòng)數(shù)據(jù)庫(kù)后用Navict for Mysql打開(kāi)居然連接成功了冰评。我一臉懵逼困擾了這么久的問(wèn)題莫名其妙就解決了。我的問(wèn)題雖然解決了但我還是想向各位大佬求助一下這到底是什么原因造成的木羹,為什么又會(huì)連接成功
最后說(shuō)一下MySQL常見(jiàn)的報(bào)錯(cuò)
Can't connect to MySQL server on 'localhost' (10061)
翻譯:不能連接到 localhost 上的mysql
分析:這說(shuō)明“l(fā)ocalhost”計(jì)算機(jī)是存在的甲雅,但在這臺(tái)機(jī)器上卻沒(méi)提供MySQL服務(wù)。
需要啟動(dòng)這臺(tái)機(jī)器上的MySQL服務(wù),如果機(jī)子負(fù)載太高沒(méi)空相應(yīng)請(qǐng)求也會(huì)產(chǎn)生這個(gè)錯(cuò)誤坑填。
解決:既然沒(méi)有啟動(dòng)那就去啟動(dòng)這臺(tái)機(jī)子的mysql抛人。如果啟動(dòng)不成功,多數(shù)是因?yàn)槟愕膍y.ini配置的有問(wèn)題脐瑰。重新配置其即可妖枚。
如果覺(jué)得mysql負(fù)載異常,可以到mysql/bin 的目錄下執(zhí)行mysqladmin -uroot -p123 processlist來(lái)查看mysql當(dāng)前的進(jìn)程苍在。
Unknown MySQL Server Host 'localhosadst' (11001)
翻譯:未知的MySQL服務(wù)器 localhosadst
分析:服務(wù)器 localhosasdst 不存在绝页。或者根本無(wú)法連接
解決:仔細(xì)檢查自己論壇下面的 ./config.inc.php 找到$dbhost重新設(shè)置為正確的mysql 服務(wù)器地址寂恬。
Access denied for user: 'roota@localhost' (Using password: YES)
翻譯:用戶 roota 訪問(wèn) localhost 被拒絕(沒(méi)有允許通過(guò))
分析:造成這個(gè)錯(cuò)誤一般數(shù)據(jù)庫(kù)用戶名和密碼相對(duì)mysql服務(wù)器不正確
解決:仔細(xì)檢查自己論壇下面的 ./config.inc.php 找到$dbuser续誉、$dbpw核實(shí)后重新設(shè)置保存即可。
Access denied for user: 'red@localhost' to database 'newbbs'
翻譯:用戶 red 在localhost 服務(wù)器上沒(méi)有權(quán)限操作數(shù)據(jù)庫(kù)newbbs
分析:這個(gè)提示和問(wèn)題三是不同的掠剑。那個(gè)是在連接數(shù)據(jù)庫(kù)的時(shí)候就被阻止了屈芜,而這個(gè)錯(cuò)誤是在對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí)引起的。比如在select update等等朴译。這個(gè)是因?yàn)樵撚脩魶](méi)有操作數(shù)據(jù)庫(kù)相應(yīng)的權(quán)力井佑。比如select 這個(gè)操作在mysql.user.Select_priv里記錄 Y 可以操作N 不可以操作。
解決:如果是自己的獨(dú)立主機(jī)那么更新mysql.user 的相應(yīng)用戶記錄眠寿,比如這里要更新的用戶為red 躬翁。或者直接修改 ./config.inc.php 為其配置一個(gè)具有對(duì)數(shù)據(jù)庫(kù)操作權(quán)限的用戶
或者通過(guò)如下的命令來(lái)更新授權(quán)grant all privileges on dbname.* to 'user'@'localhost' identified by 'password’
提示:更新了mysql庫(kù)中的記錄一定要重啟mysql服務(wù)器才能使更新生效
FLUSH PRIVILEGES;