2012-12-12 121 views
0

我在phpmyadmin中執行了此操作。授予用戶的權限在mysql中不起作用

我執行的那些:

CREATE USER root IDENTIFIED BY PASSWORD ''; 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; 

我得到這個嘗試連接時:

連接失敗:SQLSTATE [HY000] [1045]訪問被拒絕的用戶 '根' @ 'localhost' 的(使用密碼:否)

 $dsn = 'mysql:dbname=one'; 
     $user = 'root'; 
     $password = ''; 
     $pdo="Not set"; 
     try{ 
      $pdo=new PDO($dsn,$user,$password); 
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 
      }catch(Exception $ex){ 
       echo "Connect failed: ".$ex->getMessage(); 
      } 

注意,上面所用的連接到work..now它不(因爲我切換到XAMPP)

+0

我再次測試它,我得到這個:主機= 127.0.0.1。它適用於數字,但不與本地主機一起使用。但是,當我到達本地主機時,我喜歡這樣:localhost:82。這可能是它沒有工作的原因..因爲我沒有包括端口號..當我接近它的IP它的工作原理? – BlackFire27

+0

你爲什麼要創建用戶'root'?無論如何它應該始終存在,所以不需要創建它。 –

回答

1

你確定root用戶沒有密碼嗎?你有沒有安裝phpmyadmin來檢查這個?

如果問題不是特權,那麼它可能是端口。 mysql的默認端口是3306,所以如果你的mysql端口現在是82,你必須在連接中添加端口。

0

請檢查create user specification,看來你應該使用另一種語法帳戶名稱

  • 語法的帳戶名是 'USER_NAME' @ 'HOST_NAME'。

所以,就像CREATE USER 'root'@'localhost' IDENTIFIED BY PASSWORD '';。 在你的情況下CREATE USER 'root'@'%';,但我真的不建議使用'%'作爲root用戶。

+0

我認爲這是做的端口..我認爲我應該連接localhost:82,而不是localhost – BlackFire27

+0

本地主機和127.0.0.1是類似的,所以,如果你的連接使用127.0.0.1就足夠了。 – Vadim

+0

也,如果沒有幫助,請檢查http://stackoverflow.com/questions/1435445/error-on-creating-connection-to-pdo-in-php批准的答案。這些答案有不同的DSN有用的信息,當我們嘗試通過PDO連接到數據庫時使用不同的DSN – Vadim

0

您在更改權限後沖洗特權嗎?

您應該執行FLUSH PRIVILEGES;告訴服務器重新加載授權表。

0

主機%並不適用於localhost,你需要隆重權限的本地主機單獨

+0

我相信你是對的..謝謝 – BlackFire27