日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL Access denied错误的缘故情由

發布時間:2025/4/5 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL Access denied错误的缘故情由 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:天極軟件 起原:天極軟件

當你試著聯接MySQL效勞器時,如果你遇到Access denied錯誤,顯示在下面的表指出一些你能用來糾正這個成績的舉措:

  • 你是在安裝MySQL當前運轉mysql_install_db的劇本,來設置初始授權表內容嗎?如果不是,如許做。見6.10 設置初始MySQL權限。經過過程實驗這個命令測試初始權限: shell> mysql -u root test

    效勞器應該讓你無誤地毗連。你也應該保證你在MySQL數據庫目錄有一個文件“user.MYD”。屢屢,它是“PATH/var/mysql/user.MYD”,在此PATH是MySQL安裝根目錄的途徑。

  • 在一個新的安裝當前,你應該毗連效勞器而且設置你的用戶及其存取答應: shell> mysql -u root mysql

    效勞器應該讓你毗連,由于MySQL root用戶初始時沒有口令。既然那也是一個安全風險,當你正在設置其他MySQL用戶時,設定root口令是一件首要的事請。如果你作為root考試考試毗連而且掉掉這個錯誤:

    Access denied for user: '@unknown' to database mysql

    這意味著,你沒有一個條款在user表中的一個User列值為'root'而且mysqld不克不及為你的客庫理會主機名。在這種狀態下,你必須用--skip-grant-tables選項重啟效勞器而且編輯你的“/etc/hosts”或“windowshosts”文件為你的主機添加一個條款。

  • 如果你從一個3.22.11從前的版本更新一個現存的MySQL安裝到3.22.11版或當前版本,你運轉了mysql_fix_privilege_tables劇本嗎?如果沒有,運轉它。在GRANT語句變得能事項時,授權表的結構用MySQL 3.22.11批改 。
  • 如果你間接對授權表做批改(使用INSERT或UPDATE語句)而且你的改動似乎被忽略,記取,你必須收回一個FLUSH PRIVILEGES語句或實驗一個mysqladmin flush-privileges命令招致效勞器再次讀入表,否則你的改動要道下一次效勞器被重啟時再掉效。記取在你設定root口令當前,你將不需求指定它,直到在你洗濯(flush)權限當前,由于效勞器仍然不會曉得你改動了口令!
  • 如果你的權限似乎在一個會話(session)當中改動了,可以是一個超等用戶改動了他們。再次裝入授權表感化于新客戶毗連,可是它也影響現存的毗連,如6.9 權限改動何時掉效末節所述。
  • 為了測試,用--skip-grant-tables選項啟動mysqld守護過程,然后你可以改動MySQL授權表而且使用mysqlaccess劇本反省你的批改可否有如期的成績。當你對你的改動舒適時,實驗mysqladmin flush-privileges通知mysqld效勞器初步使用新的權限表。詳盡:再次裝入授權表袒護了--skip-grant-tables選項。這答應你通知效勞器初步使用授權表,而不用停損掉偏重啟它。
  • 如果你有一個Perl、Python或ODBC步調的存取成績,試著用mysql -u user_name db_name或mysql -u user_name -pyour_pass db_name與效勞器毗連。如果你能用mysql客戶毗連,這是你步調的一個成績而不是存取權限的成績。(詳盡在-p和口令之間沒有空格;你也能使用--password=your_pass句法指定口令。)
  • 如果你不克不及讓口令事項,記得如果你用INSERT, UPDATE或SET PASSWORD語句設置口令,你必須使用PASSWORD()函數。如果你用GRANT ... INDENTIFIED BY語句或mysqladmin password命令指定口令,PASSWORD()函數是不需求的。見6.12 怎樣設置口令。
  • localhost是你當地主機名的一個同義詞,而且也是如果你不大年夜白地指定主機而客戶考試考試毗連的缺省主機。但是,如果你正在運轉于一個使用MIT-pthreads的系統上,毗連localhost是不行的(localhost毗連使用Unix套接字舉辦,它沒被 MIT-pthreads撐持),為了在如許的系統上抑制這個成績,你應該使用--host選項大年夜白地定名效勞器主機,這將做一個 TCP/IP毗連到mysqld效勞器。在這種狀態下,你必須有在效勞器主機上的user表中條款標你真實的主機名。(縱然你在效勞器一致臺的主機上運轉一個客戶步調,這也是真的。)
  • 當考試考試用mysql -u user_name db_name與數據庫毗連時,如果你掉掉一個Access denied錯誤,你可以有與user桌有關的成績,經過過程實驗mysql -u root mysql而且收回下面的SQL語句反省: mysql> SELECT * FROM user;

    成績應該包羅一個有Host和User列的條款受室你的盤算機主機名和你的MySQL用戶名。

  • Access denied錯誤消息將通知你,你正在用哪個用戶考試考試登錄,你正在試圖用毗連哪個主機,而且你可否正在使用一個口令。屢屢,你應該在user表中有一個條款,切確地受室在錯誤消息給出的主機名和用戶名。
  • 如果當你試著從一個不是MySQL效勞器正在運轉的主機上毗連時,你掉掉下列錯誤,那么在user表中沒有受室那臺主機行: Host ... is not allowed to connect to this MySQL server

    你可以經過過程使用mysql命令行對象(在效勞器主機上!)批改它,把你正在試圖毗連的用戶/主機名組合新加一行到user表中。如果你不在運轉MySQL 3.22而且你不曉得你正在從它毗連的機械的IP數字或主機名,你應該把一個'%'條款作為Host列值放在user表中而且在效勞器機械上使用--log選項重啟mysqld。在試圖從客戶機械毗連當前,在MySQL記載文件中的信息將顯示你怎樣真正舉辦毗連。(然后用在記載文件下面顯示出的理想的主機名替代user表中的'%'條款。否則,你將有一個不服安的系統。)

  • 如果mysql -u root test事項可是mysql -h your_hostname -u root test招致Access denied,那么在user表中你可以沒有你的主機的切確名字。這里的一個普及的成績是在user表條款中的Host值指定一個獨一的主機名,可是你系統的名字理會例程前去一個完全正軌的域名(或相反)。例如,如果你在user表中有一個主機是'tcx'的條款,可是你的 DNS通知MySQL你的主機名是'tcx.subnet.se',條款將不事項。考試考試把一個條款加到user表中,它包羅你主機的IP數字作為Host列的值。(其他,你可以把一個條款加到user表中,它有包羅一個通配符如'tcx.%'的Host值。但是,使用以“%”掃尾的主機名是不服安的而且不舉薦!)
  • 如果mysql -u user_name test事項可是mysql -u user_name other_db_name不事項,對other_db_name,你在db表中沒有沒有一個條款列出。
  • 當在效勞器機械上實驗mysql -u user_name db_name時,它事項,可是在別的客戶機械上實驗mysql -h host_name -u user_name db_name時,它卻不事項,你沒有把客戶機械列在user表或db表中。
  • 如果你不克不及弄大年夜白你為什么掉掉Access denied,從user表中刪除一切Host包羅通配符值的條款(包羅“%”或“_”的條款)。一個很普及的錯誤是拔出用Host='%'和User='some user'拔出一個新條款,感受感染這將答應你指定localhost從一致臺機械舉辦毗連。它不事項的緣故情由是缺省權限包羅一個有Host='localhost'和User=''的條款,由于那個條款一個比'%'更具體的Host值'localhost',當從localhost毗連時,它用于指向新條款!切確的步調是拔出Host='localhost'和User='some_user'的第2個條款,或刪除Host='localhost'和User=''條款。
  • 如果你掉掉下列錯誤,你可以有一個與db或host表有關的成績: Access to database denied

    如果從db表中選擇了在Host列有空值的條款,保證在host表中有一個或多個呼應的條款,指定運用db表中的哪些主機。如果在使用SQL命令SELECT ... INTO OUTFILE或LOAD DATA INFILE時,你掉掉錯誤,在user表中的你的條款可以啟用file權限。

  • 記取,客戶步調將使用在設置裝備陳設文件或情況變量被指定了的毗連參數。如果當你不在命令行上指定他們時,一個客戶似乎正在發送錯誤的缺省毗連參數,反省你的情況和在你的主目錄下的“.my.cnf”文件。你也可以反省系統范疇的MySQL設置裝備陳設文件,當然更不可能將在哪里指定那個客戶的毗連參數。見4.15.4 選項文件。如果當你沒有任何選項運轉一個客戶時,你掉掉Access denied,確認你沒在任何選項文件里指定一個舊的口令!見4.15.4 選項文件。
  • 如果任何別的事項掉敗,用調試選項(例如,--debug=d,general,query)啟動mysqld守護過程。這將打印有關考試考試毗連的主機和用戶信息,和收回的每個命令的信息。見G.1 調試一個MySQL效勞器。
  • 如果你有任何與MySQL授權表的別的成績,而且感受感染你必須郵寄這個成績到郵寄表,總是供應一個MySQL授權表的傾倒正本(dump)。你可用mysqldump mysql命令傾倒數據庫表。象偉大年夜一樣,用mysqlbug劇本郵寄你的成績。在一些狀態下你可以用--skip-grant-tables重啟mysqld以便能運轉mysqldump。





版權聲明: 原創作品,答應轉載,轉載時請務必以超鏈接形式標明文章 原始情由 、作者信息和本聲明。否則將清查規律責任。

轉載于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1975255.html

總結

以上是生活随笔為你收集整理的MySQL Access denied错误的缘故情由的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。