[英]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.