2013-05-01 530 views
11

我試圖用Symfony2創建我的數據庫。我輸入命令:SQLSTATE [28000] [1045]拒絕用戶'root'@'localhost'的訪問(使用密碼:是)Symfony2

php app/console doctrine:create:database 

結果是:

Could not create database for connection named `jobeet` 
SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES) 

app/config/parameters.yml文件的內容是:

parameters: 
    database_driver: pdo_mysql 
    database_host:  127.0.0.1 
    database_port:  ~ 
    database_name:  jobeet 
    database_user:  root 
    database_password: 0000 

    mailer_transport: smtp 
    mailer_host:  127.0.0.1 
    mailer_user:  ~ 
    mailer_password: ~ 

    locale:   fr 
    secret:   ThisTokenIsNotSoSecretChangeIt 

我的操作系統是Ubuntu Linux系統。

我不知道該怎麼做來糾正這個問題。

感謝您的幫助。

+5

訪問被拒絕的用戶 '根' @ 'localhost'(使用密碼:YES)是MySQL連接錯誤。通常意味着無效的用戶和/或密碼。有時你必須使用localhost而不是127.0.0.1才能工作。 – rncrtr 2013-05-01 19:38:50

+1

是引號中的密碼? – 2013-05-01 22:15:15

+3

恭喜!!!密碼需要輸入引號。非常感謝你!!如何在解決狀態下完成這篇文章? – mentaga 2013-05-01 22:54:33

回答

12

嘗試通過使用以下命令終端登錄:

mysql -u root -p 

然後它會提示輸入您的密碼。如果失敗了,那麼用戶名或密碼肯定是不正確的。如果一切正常,那麼你的數據庫的密碼需要用引號括起來:

database_password: "0000" 
+2

我可以通過終端登錄到我的mysql服務器。我不認爲從用戶和密碼的問題。我試圖創建我的數據庫從2小時沒有結果 – mentaga 2013-05-01 20:01:02

+0

在這種情況下,嘗試設置:database_port:'3306' – 2013-05-01 20:03:04

+3

我添加端口號3306,我有同樣的問題 – mentaga 2013-05-01 20:09:41

2

好了,這可能不是解決您的問題,但它確實爲我工作。

所以你創建了你的Mysql用戶嗎?轉至PhpMyAdmin的用戶權限,然後單擊用於Symfony的用戶旁邊的編輯。向下滾動到底部附近,並說明您要使用哪個主機,確保您選擇了LocalHost而不是%Any。

然後在你的配置文件中交換localhost的127.0.0.1。希望這會爲你工作。剛剛爲我工作,因爲我有同樣的問題。

0

我在使用LibreOffice連接到OpenSUSE 13.1 MySQL數據庫時遇到了類似的問題。將LibreOffice更新到最新的穩定「Still」包,然後確保使用諸如phpMyAdmin之類的工具訪問數據庫。確保你的用戶鏈接到本地​​主機,而不是「%」(任何)。這對我有用,我可以通過LibreOffice添加數據。

備註 - LibreOffice Base在第一次嘗試時不會通過MySQL提供「原生連接」,您需要使用後退按鈕,然後再次嘗試查看選項。

希望這會有所幫助。

3

在您的應用程序/配置/ parameters.yml

# This file is auto-generated during the composer install 
parameters: 
    database_driver: pdo_mysql 
    database_host: 127.0.0.1 
    database_port: 3306 
    database_name: symfony 
    database_user: root 
    database_password: "your_password" 
    mailer_transport: smtp 
    mailer_host: 127.0.0.1 
    mailer_user: null 
    mailer_password: null 
    locale: en 
    secret: ThisTokenIsNotSoSecretChangeIt 

database_password應仔細進行內部引號(「)或單引號(')。

我所見到的大多數用戶的發生,因爲他們使用密碼與領先的零或數字(在我的情況的那樣)

+1

確實@Nadun Liyanage實際上是對的,密碼數據庫應該在「」像這個例如'「0000」'之間,因爲它是一個字符串。 – 2016-03-28 10:38:15

+0

他確實是對的。哇謝謝!奇怪的是Symfony 3的內置服務器沒有引號就被接受了。使用nginx我真的需要這個引號,否則它不起作用 - >拒絕訪問用戶問題。 – danger89 2016-05-05 23:19:55

5

我不知道什麼是確切的原因,但我的問題解決了運行:

app/console cache:clear --env=prod 
+0

很愚蠢,這對我也是如此。我想我可能修復了錯誤之前,我嘗試了多種事情,並沒有生效,直到我清除緩存...謝謝;) – mezod 2015-05-05 16:23:51

2

您需要將[email protected]calhost的密碼設置爲空白。有兩種方法:

  • MySQL的SET PASSWORD命令:

    SET PASSWORD FOR [email protected]=PASSWORD(''); 
    
  • 使用命令行mysqladmin工具:

    mysqladmin -u root -pCURRENTPASSWORD password '' 
    
+0

謝謝你救了我真正的頭痛 - 我第一次嘗試與MariaDB,但隨後報廢它,然後有mysql.sock問題,然後權限問題等,這最終解決了我。 – SMT 2015-03-25 23:38:03

相關問題