MySQL Access denied错误的缘故情由
作者:天極軟件 起原:天極軟件
當(dāng)你試著聯(lián)接MySQL效勞器時(shí),如果你遇到Access denied錯(cuò)誤,顯示在下面的表指出一些你能用來糾正這個(gè)成績(jī)的舉措:
- 你是在安裝MySQL當(dāng)前運(yùn)轉(zhuǎn)mysql_install_db的劇本,來設(shè)置初始授權(quán)表內(nèi)容嗎?如果不是,如許做。見6.10 設(shè)置初始MySQL權(quán)限。經(jīng)過過程實(shí)驗(yàn)這個(gè)命令測(cè)試初始權(quán)限: shell> mysql -u root test
效勞器應(yīng)該讓你無誤地毗連。你也應(yīng)該保證你在MySQL數(shù)據(jù)庫(kù)目錄有一個(gè)文件“user.MYD”。屢屢,它是“PATH/var/mysql/user.MYD”,在此PATH是MySQL安裝根目錄的途徑。
- 在一個(gè)新的安裝當(dāng)前,你應(yīng)該毗連效勞器而且設(shè)置你的用戶及其存取答應(yīng): shell> mysql -u root mysql
效勞器應(yīng)該讓你毗連,由于MySQL root用戶初始時(shí)沒有口令。既然那也是一個(gè)安全風(fēng)險(xiǎn),當(dāng)你正在設(shè)置其他MySQL用戶時(shí),設(shè)定root口令是一件首要的事請(qǐng)。如果你作為root考試考試毗連而且掉掉這個(gè)錯(cuò)誤:
Access denied for user: '@unknown' to database mysql這意味著,你沒有一個(gè)條款在user表中的一個(gè)User列值為'root'而且mysqld不克不及為你的客庫(kù)理會(huì)主機(jī)名。在這種狀態(tài)下,你必須用--skip-grant-tables選項(xiàng)重啟效勞器而且編輯你的“/etc/hosts”或“windowshosts”文件為你的主機(jī)添加一個(gè)條款。
- 如果你從一個(gè)3.22.11從前的版本更新一個(gè)現(xiàn)存的MySQL安裝到3.22.11版或當(dāng)前版本,你運(yùn)轉(zhuǎn)了mysql_fix_privilege_tables劇本嗎?如果沒有,運(yùn)轉(zhuǎn)它。在GRANT語句變得能事項(xiàng)時(shí),授權(quán)表的結(jié)構(gòu)用MySQL 3.22.11批改 。
- 如果你間接對(duì)授權(quán)表做批改(使用INSERT或UPDATE語句)而且你的改動(dòng)似乎被忽略,記取,你必須收回一個(gè)FLUSH PRIVILEGES語句或?qū)嶒?yàn)一個(gè)mysqladmin flush-privileges命令招致效勞器再次讀入表,否則你的改動(dòng)要道下一次效勞器被重啟時(shí)再掉效。記取在你設(shè)定root口令當(dāng)前,你將不需求指定它,直到在你洗濯(flush)權(quán)限當(dāng)前,由于效勞器仍然不會(huì)曉得你改動(dòng)了口令!
- 如果你的權(quán)限似乎在一個(gè)會(huì)話(session)當(dāng)中改動(dòng)了,可以是一個(gè)超等用戶改動(dòng)了他們。再次裝入授權(quán)表感化于新客戶毗連,可是它也影響現(xiàn)存的毗連,如6.9 權(quán)限改動(dòng)何時(shí)掉效末節(jié)所述。
- 為了測(cè)試,用--skip-grant-tables選項(xiàng)啟動(dòng)mysqld守護(hù)過程,然后你可以改動(dòng)MySQL授權(quán)表而且使用mysqlaccess劇本反省你的批改可否有如期的成績(jī)。當(dāng)你對(duì)你的改動(dòng)舒適時(shí),實(shí)驗(yàn)mysqladmin flush-privileges通知mysqld效勞器初步使用新的權(quán)限表。詳盡:再次裝入授權(quán)表袒護(hù)了--skip-grant-tables選項(xiàng)。這答應(yīng)你通知效勞器初步使用授權(quán)表,而不用停損掉偏重啟它。
- 如果你有一個(gè)Perl、Python或ODBC步調(diào)的存取成績(jī),試著用mysql -u user_name db_name或mysql -u user_name -pyour_pass db_name與效勞器毗連。如果你能用mysql客戶毗連,這是你步調(diào)的一個(gè)成績(jī)而不是存取權(quán)限的成績(jī)。(詳盡在-p和口令之間沒有空格;你也能使用--password=your_pass句法指定口令。)
- 如果你不克不及讓口令事項(xiàng),記得如果你用INSERT, UPDATE或SET PASSWORD語句設(shè)置口令,你必須使用PASSWORD()函數(shù)。如果你用GRANT ... INDENTIFIED BY語句或mysqladmin password命令指定口令,PASSWORD()函數(shù)是不需求的。見6.12 怎樣設(shè)置口令。
- localhost是你當(dāng)?shù)刂鳈C(jī)名的一個(gè)同義詞,而且也是如果你不大年夜白地指定主機(jī)而客戶考試考試毗連的缺省主機(jī)。但是,如果你正在運(yùn)轉(zhuǎn)于一個(gè)使用MIT-pthreads的系統(tǒng)上,毗連localhost是不行的(localhost毗連使用Unix套接字舉辦,它沒被 MIT-pthreads撐持),為了在如許的系統(tǒng)上抑制這個(gè)成績(jī),你應(yīng)該使用--host選項(xiàng)大年夜白地定名效勞器主機(jī),這將做一個(gè) TCP/IP毗連到mysqld效勞器。在這種狀態(tài)下,你必須有在效勞器主機(jī)上的user表中條款標(biāo)你真實(shí)的主機(jī)名。(縱然你在效勞器一致臺(tái)的主機(jī)上運(yùn)轉(zhuǎn)一個(gè)客戶步調(diào),這也是真的。)
- 當(dāng)考試考試用mysql -u user_name db_name與數(shù)據(jù)庫(kù)毗連時(shí),如果你掉掉一個(gè)Access denied錯(cuò)誤,你可以有與user桌有關(guān)的成績(jī),經(jīng)過過程實(shí)驗(yàn)mysql -u root mysql而且收回下面的SQL語句反省: mysql> SELECT * FROM user;
成績(jī)應(yīng)該包羅一個(gè)有Host和User列的條款受室你的盤算機(jī)主機(jī)名和你的MySQL用戶名。
- Access denied錯(cuò)誤消息將通知你,你正在用哪個(gè)用戶考試考試登錄,你正在試圖用毗連哪個(gè)主機(jī),而且你可否正在使用一個(gè)口令。屢屢,你應(yīng)該在user表中有一個(gè)條款,切確地受室在錯(cuò)誤消息給出的主機(jī)名和用戶名。
- 如果當(dāng)你試著從一個(gè)不是MySQL效勞器正在運(yùn)轉(zhuǎn)的主機(jī)上毗連時(shí),你掉掉下列錯(cuò)誤,那么在user表中沒有受室那臺(tái)主機(jī)行: Host ... is not allowed to connect to this MySQL server
你可以經(jīng)過過程使用mysql命令行對(duì)象(在效勞器主機(jī)上!)批改它,把你正在試圖毗連的用戶/主機(jī)名組合新加一行到user表中。如果你不在運(yùn)轉(zhuǎn)MySQL 3.22而且你不曉得你正在從它毗連的機(jī)械的IP數(shù)字或主機(jī)名,你應(yīng)該把一個(gè)'%'條款作為Host列值放在user表中而且在效勞器機(jī)械上使用--log選項(xiàng)重啟mysqld。在試圖從客戶機(jī)械毗連當(dāng)前,在MySQL記載文件中的信息將顯示你怎樣真正舉辦毗連。(然后用在記載文件下面顯示出的理想的主機(jī)名替代user表中的'%'條款。否則,你將有一個(gè)不服安的系統(tǒng)。)
- 如果mysql -u root test事項(xiàng)可是mysql -h your_hostname -u root test招致Access denied,那么在user表中你可以沒有你的主機(jī)的切確名字。這里的一個(gè)普及的成績(jī)是在user表?xiàng)l款中的Host值指定一個(gè)獨(dú)一的主機(jī)名,可是你系統(tǒng)的名字理會(huì)例程前去一個(gè)完全正軌的域名(或相反)。例如,如果你在user表中有一個(gè)主機(jī)是'tcx'的條款,可是你的 DNS通知MySQL你的主機(jī)名是'tcx.subnet.se',條款將不事項(xiàng)。考試考試把一個(gè)條款加到user表中,它包羅你主機(jī)的IP數(shù)字作為Host列的值。(其他,你可以把一個(gè)條款加到user表中,它有包羅一個(gè)通配符如'tcx.%'的Host值。但是,使用以“%”掃尾的主機(jī)名是不服安的而且不舉薦!)
- 如果mysql -u user_name test事項(xiàng)可是mysql -u user_name other_db_name不事項(xiàng),對(duì)other_db_name,你在db表中沒有沒有一個(gè)條款列出。
- 當(dāng)在效勞器機(jī)械上實(shí)驗(yàn)mysql -u user_name db_name時(shí),它事項(xiàng),可是在別的客戶機(jī)械上實(shí)驗(yàn)mysql -h host_name -u user_name db_name時(shí),它卻不事項(xiàng),你沒有把客戶機(jī)械列在user表或db表中。
- 如果你不克不及弄大年夜白你為什么掉掉Access denied,從user表中刪除一切Host包羅通配符值的條款(包羅“%”或“_”的條款)。一個(gè)很普及的錯(cuò)誤是拔出用Host='%'和User='some user'拔出一個(gè)新條款,感受感染這將答應(yīng)你指定localhost從一致臺(tái)機(jī)械舉辦毗連。它不事項(xiàng)的緣故情由是缺省權(quán)限包羅一個(gè)有Host='localhost'和User=''的條款,由于那個(gè)條款一個(gè)比'%'更具體的Host值'localhost',當(dāng)從localhost毗連時(shí),它用于指向新條款!切確的步調(diào)是拔出Host='localhost'和User='some_user'的第2個(gè)條款,或刪除Host='localhost'和User=''條款。
- 如果你掉掉下列錯(cuò)誤,你可以有一個(gè)與db或host表有關(guān)的成績(jī): Access to database denied
如果從db表中選擇了在Host列有空值的條款,保證在host表中有一個(gè)或多個(gè)呼應(yīng)的條款,指定運(yùn)用db表中的哪些主機(jī)。如果在使用SQL命令SELECT ... INTO OUTFILE或LOAD DATA INFILE時(shí),你掉掉錯(cuò)誤,在user表中的你的條款可以啟用file權(quán)限。
- 記取,客戶步調(diào)將使用在設(shè)置裝備陳設(shè)文件或情況變量被指定了的毗連參數(shù)。如果當(dāng)你不在命令行上指定他們時(shí),一個(gè)客戶似乎正在發(fā)送錯(cuò)誤的缺省毗連參數(shù),反省你的情況和在你的主目錄下的“.my.cnf”文件。你也可以反省系統(tǒng)范疇的MySQL設(shè)置裝備陳設(shè)文件,當(dāng)然更不可能將在哪里指定那個(gè)客戶的毗連參數(shù)。見4.15.4 選項(xiàng)文件。如果當(dāng)你沒有任何選項(xiàng)運(yùn)轉(zhuǎn)一個(gè)客戶時(shí),你掉掉Access denied,確認(rèn)你沒在任何選項(xiàng)文件里指定一個(gè)舊的口令!見4.15.4 選項(xiàng)文件。
- 如果任何別的事項(xiàng)掉敗,用調(diào)試選項(xiàng)(例如,--debug=d,general,query)啟動(dòng)mysqld守護(hù)過程。這將打印有關(guān)考試考試毗連的主機(jī)和用戶信息,和收回的每個(gè)命令的信息。見G.1 調(diào)試一個(gè)MySQL效勞器。
- 如果你有任何與MySQL授權(quán)表的別的成績(jī),而且感受感染你必須郵寄這個(gè)成績(jī)到郵寄表,總是供應(yīng)一個(gè)MySQL授權(quán)表的傾倒正本(dump)。你可用mysqldump mysql命令傾倒數(shù)據(jù)庫(kù)表。象偉大年夜一樣,用mysqlbug劇本郵寄你的成績(jī)。在一些狀態(tài)下你可以用--skip-grant-tables重啟mysqld以便能運(yùn)轉(zhuǎn)mysqldump。
版權(quán)聲明: 原創(chuàng)作品,答應(yīng)轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始情由 、作者信息和本聲明。否則將清查規(guī)律責(zé)任。
轉(zhuǎn)載于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1975255.html
總結(jié)
以上是生活随笔為你收集整理的MySQL Access denied错误的缘故情由的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Envy-便当的显卡驱动布置剧本
- 下一篇: 家常茄子的家常做法?