Php Laravel 5数据库问题
我已使用以下命令成功安装了laravel 5:Php Laravel 5数据库问题,php,mysql,laravel-5,Php,Mysql,Laravel 5,我已使用以下命令成功安装了laravel 5: composer create-project laravel/laravel test-laravel-5-project dev-develop --prefer-dist 我甚至使用phpartisan-V命令验证了安装的laravel的版本。输出是 Laravel Framework version 5.0-dev 然后我转到app/config/database.php,将dafault db设置为mysql,并将配置设置为 'mys
composer create-project laravel/laravel test-laravel-5-project dev-develop --prefer-dist
我甚至使用phpartisan-V
命令验证了安装的laravel的版本。输出是
Laravel Framework version 5.0-dev
然后我转到app/config/database.php,将dafault db设置为mysql,并将配置设置为
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'Logintestfive'), 'username'=> env('DB_USERNAME', 'root'), 'password'=> env('DB_PASSWORD', 'manasa'), 'charset'=> 'utf-8', 'collation'=> 'utf-8_unicode_ci', prefix=> '', 'strict'=> false, ]
然后我转到localhost:8000/auth/register
,填写表格并提交数据,这就是我得到的错误:
PDOException in Connector.php line 47: SQLSTATE[28000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)
但我既没有使用laravel homestead
在我的系统中安装laravel 5,也没有使用vagrant
设置laravel homestead。它告诉我:
in Connector.php line 47
at PDO->__construct('mysql:host=localhost;dbname=homestead', 'homestead', 'secret', array('0', '2', '0', false, '0')) in Connector.php line 47
at Connector->createConnection('mysql:host=localhost;dbname=homestead', array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'homestead', 'username' => 'homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql'), array('0', '2', '0', false, '0')) in MySqlConnector.php line 20
at MySqlConnector->connect(array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'homestead', 'username' => 'homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql')) in compiled.php line 10545
at ConnectionFactory->createSingleConnection(array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'homestead', 'username' => 'homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql')) in compiled.php line 10541
at ConnectionFactory->make(array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'homestead', 'username' => 'homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false), 'mysql') in compiled.php line 10459
如何解决这些问题?Laravel正在使用
.env
文件中包含的变量
发件人:
根据应用程序运行的环境,使用不同的配置值通常很有帮助。例如,您可能希望在本地使用与在生产服务器上不同的缓存驱动程序。使用基于环境的配置很容易
Laravel使用Vance Lucas的DotEnv PHP库。在全新的Laravel安装中,应用程序的根目录将包含一个.env.example文件。如果通过Composer安装Laravel,此文件将自动重命名为.env。否则,应手动重命名该文件
当应用程序收到请求时,此文件中列出的所有变量都将加载到$_envphp super global中。您可以使用env助手从这些变量中检索值。事实上,如果您查看Laravel配置文件,您将注意到已经使用此帮助程序的几个选项
您可以根据自己的本地服务器和生产环境的需要随意修改环境变量。但是,不应将.env文件提交给应用程序的源代码管理,因为使用应用程序的每个开发人员/服务器可能需要不同的环境配置
如果您正在与团队一起开发,您可能希望继续在应用程序中包含.env.example文件。通过在示例配置文件中放置占位符值,团队中的其他开发人员可以清楚地看到运行应用程序需要哪些环境变量
默认的.env文件如下所示:
APP_ENV=local
APP_DEBUG=true
APP_KEY=YOUR_KEY_HERE
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
我也有类似的问题。我使用
php-artisan-serve
命令启动了服务器,编辑了.env
文件并刷新了未反映任何更改的网页
我通过停止Web服务器、编辑.env.php
文件并重新启动Web服务器来修复它
所以我想这是
.env.php
文件的缓存问题 我也有同样的问题。在我使用命令“php artisan config:clear”清除旧的配置缓存文件之后,它就可以工作了。也许你可以试试
顺便说一句,我的英语不好,希望你能理解。我有一个非常类似的问题,不知道去哪里找。我清除了缓存,重启了服务器,等等,没有乐趣。直到我找到它 在我恢复到Git repo的早期版本之前,我曾经将会话驱动程序设置为使用数据库!愚蠢的事情,但您需要查看的不一定是数据库连接,而是您首先调用要使用的数据库的位置
我希望最终以我的方式出现在这个页面上的人会发现这一点很有帮助。Laravel正在使用.env文件,所以请更改.env文件或在不使用env()的情况下更改database.php文件
我也有同样的问题,编辑根文件夹上的文件
.env
,并更改数据库配置DB\u数据库DB\u用户名DB\u密码在你的laravel例如.c:/www/laravel,在app/config.Copy database.php(app/config/database.php)中创建一个名为“local”的新目录.这对我来说很有效Laravel 5.1.10
正如上面Ganesh和Yordi已经给出的答案,但我将两者合并为一个
问题:
当我尝试在phpmyAdmin中创建数据库并希望通过Laravel schema builder服务创建架构/表时,我遇到以下错误:
Connector.php第50行出现异常:用户'homestead'@'localhost'(使用密码:YES)的SQLSTATE[HY000][1045]访问被拒绝
在Connector.php第50行中
在PDO->_构造('mysql:host=localhost;dbname=homestad','homestad','secret',array('0','2','0','false',0'))
在Connector.php第50行中
在Connector->createConnection('mysql:host=localhost;dbname=homestad',array('driver'=>'mysql','host'=>'localhost','database'=>'homestad','username'=>'homestad','password'=>'secret','charset'=>'utf8','collation'=>'utf8'unicode\u ci',prefix'=>'strict'=>'false',name'=>'mysql'),array('0','2','0','false'))在MySqlConnector.php第22行中
在MySqlConnector->connect(数组('driver'=>'mysql','host'=>'localhost','database'=>'homestad','username'=>'homestad','password'=>'secret','charset'=>'utf8','collation'=>'utf8\u unicode\u ci','prefix'=>'','strict'=>false',name'=>'mysql'))
解决方案1:
然后我意识到问题在env文件中,我忘记更改env文件中的值。.env文件位于laravel 5根目录中
打开该文件并使用您的值更改以下值
DB_DATABASE=localhost,
DB_USERNAME=数据库用户名,
DB_PASSWORD=数据库用户密码
解决方案2:
或者将database.php文件中的env()更改为Ganesh syas:
// instead of this block
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'your database name'),
'username' => env('DB_USERNAME', 'your database username'),
'password' => env('DB_PASSWORD', 'your database password'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
// use this one
'mysql' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'your database name',
'username' => 'your database username',
'password' => 'your database password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
这两种解决方案对我都有效。是的,我遇到了同样的问题,从迁移安装到php artisan迁移,一切都进展顺利。但当我试图创建一个用户时,访问被拒绝
索鲁
// instead of this block
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'your database name'),
'username' => env('DB_USERNAME', 'your database username'),
'password' => env('DB_PASSWORD', 'your database password'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
// use this one
'mysql' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'your database name',
'username' => 'your database username',
'password' => 'your database password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'DBName'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=DBName
DB_USERNAME=root
DB_PASSWORD=
php artisan serve
php artisan config:clear
sudo service apache2 reload