繁体   English   中英

php artisan migrate 的 Laravel 错误

[英]Laravel error with php artisan migrate

我正在尝试遵循本指南: https : //laravel.com/docs/5.2/quickstart

我在 aws 上运行 ubuntu 14.04。 我正在使用 Laravel 5.2。 我是 laravel 的新手(对于这件事,aws 也是如此),我已经完成了指南中的所有内容并收到了这个错误。

当我运行时:

php工匠迁移

我收到以下错误:

[PDO 异常]

SQLSTATE[28000] [1045] 用户 'homestead'@'localhost' 访问被拒绝(使用密码: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=homestead 中指定的名称相同的数据库。 我可能应该从宅基地改变它,因为我没有使用宅基地:/

DB_USERNAME 与我们用于登录 mysql 的用户名相同,因此

DB_USERNAME = root

虽然密码与我们用来登录 mysql 的密码相同。

这可能看起来很明显,但我是新手,不知道。 laravel 网站上的快速入门指南也没有涵盖它。 也许我没有准确地遵循它,如果是这样让我知道。

干杯

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

我意识到您使用的是 linux 机器,但我主要是为了 Windows 用户在他们的本地机器上工作,他们将来可能会处理同样的问题。 (正如我过去所做的那样)。

我个人的经验是,如果您可以帮助自己,请始终创建一个具有必要权限的新用户,而不是将 DB_USERNAME 设置为 root 用户。

在 phpMyAdmin 用户界面上的 db 页面上的权限下,您将获得具有全局和数据库特定访问权限的所有用户的列表。 用户sage-admin拥有我的数据库的所有权限,如图所示:使用 mysql 注册的所有用户列表

在 Laravel 中的 .env 文件中,您添加此用户的属性和目标数据库,它就可以工作了!

您需要使用正确的凭据更新.env文件,例如

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM