我正在尝试遵循本指南:https://laravel.com/docs/5.2/quickstart
我在 aws 上运行 ubuntu 14.04。我正在使用 laravel 5.2。我是 laravel 的新手(以及 aws(,我已经完成了指南中的所有操作并收到此错误。
当我运行时:
PHP 工匠迁移
我收到以下错误:
[PDOException]
SQLSTATE[28000] [1045] 拒绝用户访问 '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=homestead 中指定的数据库同名的数据库。我可能应该从宅基地更改它,因为我没有使用宅基地:/
DB_USERNAME是我们用于登录mysql的相同用户名,因此
DB_USERNAME = root
虽然密码与我们用于登录mysql的密码相同。
这可能看起来很明显,但我是新手,不知道。Laravel网站上的快速入门指南中也没有介绍它。也许我没有准确地遵循它,如果是这样,请告诉我。
干杯
正如我提到的,您需要通过终端登录到MySQL mysql -u root -p
,其中root是MySQL用户,然后输入密码,然后使用SQL CREATE DATABASE my_db;
创建数据库,其中my_db
是数据库名称,最后只需使用数据库和凭据更新.env文件。
您使用的是 linux 机器,但我添加它主要是为了在本地机器上工作的 Windows 用户,他们将来可能会处理同样的问题。(就像我过去一样(。
我个人的经验是,如果您可以帮助自己,请始终创建一个具有必要权限的新用户,而不是设置DB_USERNAME根用户。
在 phpMyAdmin 用户界面上数据库页面上的权限下,您将获得具有全局和数据库特定访问权限的所有用户的列表。用户sage-admin对我的数据库拥有所有权限,如图所示:在 mysql 注册的所有用户的列表
在 laravel 的 .env 文件中,您添加此用户的属性和目标数据库,它就可以工作了!
例如,您需要使用正确的凭据更新 .env 文件
DB_HOST=localhost
DB_DATABASE=db_name
DB_USERNAME=db_username
DB_PASSWORD=db_password
以正确连接数据库。如果您之前没有创建过数据库,可以通过 PHPMyAdmin 创建它。