我想讓我的Symfony 3應用程序在Amazon EC2實例上以生產模式運行。Mysql數據庫連接被拒絕
我必須在正確的位置的代碼,然後我嘗試設置與作曲家的任何相關運行
export SYMFONY_ENV=prod
composer install --no-dev --optimize-autoloader
,但得到的錯誤
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installAssets
[Doctrine\DBAL\Exception\ConnectionException]
An exception occured in driverL SQLSTATE[HY000] [1044] Access denied for user 'my-user'@'127.0.0.1' to database 'my_database'
此錯誤,然後傳遞下去在腳本終止之前到[Doctrine\DBAL\Driver\PDOException]
和[PDOException]
。 這是隨後由消息
[RuntimeException]
An error occured when executing the "'assets:install --symlink --rela'\''web'\'''" command:
其然後隨後在相同的錯誤如開頭。
我parameters.yml文件
parameters:
database_host: 127.0.0.1
database_port: 3306
database_name: my_database
database_user: my-user
database_password: mypassword
server_version: 5.6
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
secret: Mysecret
registration_permitted: true
registration_limit: 3
和用戶my-user
有數據庫my_database
除了GRANT的所有權限。
我一直試圖解決這個問題幾個小時無濟於事,我遇到的其他解決方案涉及拼寫錯誤的用戶名/密碼/數據庫(三重檢查)或需要服務器版本添加(這沒有任何區別)。
附加信息
- 運行
mysql -u my-user -p
提示輸入密碼,然後讓我登錄。 - 運行
mysql -u my-user -p -D my_database
會提示輸入密碼,然後返回ERROR 1044 (42000): Access denied for user 'my-user'@'localhost' to database 'my_database'
。 - 以root身份登錄到mysql並運行
SHOW GRANTS FOR 'my-user';
返回ERROR 1141 (42000): There is no such grant defined for user 'my-user' on host '%'
。 - 以root身份登錄到mysql並運行
SHOW GRANTS FOR 'my-user'@'localhost';
返回GRANT USAGE ON *.* TO 'my-user'@'localhost' IDENTIFIED BY PASSWORD hashedPassword
。
附加信息2 刪除my-user
('my-user'@'localhost'
和'my-user'@'127.0.0.1'
),然後使用GRANT ALL PRIVILEGES ON my_database.* TO 'my-user'@'localhost' IDENTIFIED BY 'password';
並且還GRANT ALL PRIVILEGES ON my_database.* TO 'my-user'@'127.0.0.1' IDENTIFIED BY 'password';
然後FLUSH PRIVILEGES;
的SHOW GRANTS FOR 'my-user'@'localhost'
輸出然後
GRANT USAGE ON *.* TO 'my-user'@'localhost' IDENTIFIED BY PASSWORD 'passwordHash'
GRANT ALL PRIVILEGES ON 'my_database' TO 'my-user'@'localhost'
和'my-user'@'127.0.0.1'
類似的輸出重建他們後。
但是,這仍然給我與以前一樣的錯誤,還有什麼想法?
如果你ssh到服務器並運行'mysql的,會發生什麼-u我-user -pmy_database my_d atabase'?你也可以在MySQL中運行'SHOW GRANTS FOR my-user'嗎? – Moein
謝謝@Moein - 我已經將這些命令的輸出添加到問題的末尾(對於評論來說太長),看起來用戶沒有我認爲他們做的權限。你知道這可能是爲什麼嗎?通過phpmyadmin查看錶格顯示了在那裏的權限。 – Kvothe
GRANT USAGE ON基本上沒有任何授權:D 試着運行''將所有權限授予*。*到'我的用戶'@'localhost''然後'FLUSH PRIVILEGES' – Moein