2016-02-04 107 views
1

我试图按照本指南: https://laravel.com/docs/5.2/quickstart用PHP工匠Laravel错误迁移

我在AWS上运行Ubuntu 14.04。我正在使用laravel 5.2。我对laravel很陌生(对于这个问题也很关注),我已经完成了指南中的所有内容,并得到了这个错误。

当我运行:

php artisan migrate

我得到以下错误:

[PDOException]

SQLSTATE[28000] [1045] Access denied for user 'homestead'@'localhost' (usin g password: YES)

的.ENV文件看起来是这样的:

APP_ENV=local APP_DEBUG=true APP_KEY=hXP0uBJkQos3cHK7D8f6LVx2SLuLAuyv 

DB_HOST=localhost 
DB_DATABASE=homestead 
DB_USERNAME=homestead 
DB_PASSWORD=secret 

CACHE_DRIVER=file 
SESSION_DRIVER=file 
QUEUE_DRIVER=sync 

REDIS_HOST=localhost 
REDIS_PASSWORD=null 
REDIS_PORT=6379 

MAIL_DRIVER=smtp 
MAIL_HOST=mailtrap.io 
MAIL_PORT=2525 MAIL_USERNAME=null 
MAIL_PASSWORD=null MAIL_ENCRYPTION=null 

编辑:好了,所以我想这个问题是由于对Ubuntu,MySQL和laravel缺乏了解。我完全按照上面的链接中的指导,但我想这是为运行宅基地的人。它看起来像在Ubuntu服务器上,你必须手动创建数据库(猜测这似乎很明显)。

所以与登录到mysql:系统提示您输入它的时候

mysql -u root -p 

然后输入密码。

使用root可能不是一个好主意,但我只是在学习。 您在此处输入的密码与您必须在laravel根目录中的.env文件中输入的密码相同。

一旦登录到mysql的输入:

mysql> create database homestead; 

这将创建具有相同名称作为.ENV文件DB_DATABASE指定的宅基地=数据库。我应该为我不使用宅基地从宅基地改变:/

的DB_USERNAME是我们用来登录到MySQL所以

DB_USERNAME = root 

相同的用户名当密码是我们使用相同的密码登录到MySQL。

这可能似乎都很明显,但我是新的,不知道。它也没有在Laravel网站的快速入门指南中介绍。也许我没有准确地遵循它,如果是的话,让我知道。

干杯

+0

您是否已经在AWS上安装MySQL? – enriqg9

+0

我输入了mysql --version并得到:mysql Ver 14.14 Distrib 5.5.46,对于使用readline的debian-linux-gnu(x86_64)6.3 –

+0

什么是DB_DATABASE,DB_USERNAME,DB_PASSWORD,数据库是否会自动使用这些凭证创建?或者我必须手动执行它? DB_PASSWORD是否意味着我用来登录到mysql的密码?我使用以下命令登录到mysql:“mysql -u root -p”<然后我输入密码>。这个密码应该和DB_PASSWORD一样吗? –

回答

3

正如我所说,你需要通过终端mysql -u root -p,其中root是MySQL用户,然后输入你的密码登录到MySQL,那么就创建一个使用SQL CREATE DATABASE my_db;其中my_db是数据库名称,最后只是更新数据库您的.env文件与您的数据库和凭据。

-2

您需要更新与正确的凭据.ENV文件,例如

DB_HOST=localhost 
DB_DATABASE=db_name 
DB_USERNAME=db_username 
DB_PASSWORD=db_password 

正确连接数据库。如果您之前尚未创建数据库,则可以通过PHPMyAdmin创建它。

+1

Laravel设置为使用.ENV文件的位置,或默认为database.php文件。你应该**从不**在你的database.php中设置这些。 – Derek

+0

**从不??? ???做一些研究。 Laravel从未限制你不使用自己的数据库。 –

+2

@OliverQueen是对的。你不应该直接编辑你的database.php文件中的值,因为你的凭证会在你的仓库中结束。你应该总是使用env变量。您可以将它们设置在.env或服务器env设置中。在这种情况下,粗体是值得的。 – jfadich