Php Laravel 5错误SQLSTATE[HY000][1045]拒绝用户访问';宅地'@';本地主机';(使用密码:是)

Php Laravel 5错误SQLSTATE[HY000][1045]拒绝用户访问';宅地'@';本地主机';(使用密码:是),php,database,xampp,localhost,laravel-5,Php,Database,Xampp,Localhost,Laravel 5,我已经成功安装了Laravel 5,并将config目录中database.php文件中的MySQL凭据更改为 " 我不想使用homestead,我已将.env文件更改为 APP_ENV=local APP_DEBUG=true APP_KEY=apLIzEMOgtc5BUxdT9WRLSvAoIIWO87N DB_HOST=localhost DB_DATABASE=wdcollect DB_USERNAME=root DB_PASSWORD= CACHE_DRIVER=file SESS

我已经成功安装了Laravel 5,并将config目录中database.php文件中的MySQL凭据更改为 "

我不想使用homestead,我已将.env文件更改为

APP_ENV=local
APP_DEBUG=true
APP_KEY=apLIzEMOgtc5BUxdT9WRLSvAoIIWO87N

DB_HOST=localhost
DB_DATABASE=wdcollect
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

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

我不明白为什么会说“homestead”@“localhost”的访问被拒绝

您不需要在database.php文件中设置凭据。如果您在.env中有凭据就足够了


若您能够直接登录到数据库,那个么这个密码必须有效。您可能拥有与此文件中定义的“本地”不同的环境。测试是使用“php artisan env”

进行的,它现在正在工作。我必须重新启动服务器。 谢谢

尝试签出根目录中的“.env”文件。它将是一个隐藏文件。更正这些值

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

请更新以下文件

供应商-环境-在线#7


而不是宅地用户您的数据库,用户名和密码。这应该对你有用。

当我在共享主机上在线部署我的网站时,这些都不适用于我,下面是我所做的工作

.env
文件中,我更改了

DB_HOST=127.0.0.1

和viola一样,它工作得很好。

请更新.env文件

 DB_HOST=localhost
 DB_DATABASE=homestead
 DB_USERNAME=homestead
 DB_PASSWORD=secret
然后重新启动服务器


您需要运行这两个命令

php artisan缓存:清除 php artisan配置:缓存
如果在使用localhost和root之前,您的文件将被缓存

删除/bootstap/cache/config.php,而不是使用此

DB_HOST=localhost
DB_DATABASE=wdcollect
DB_USERNAME=root
DB_PASSWORD=
用这个

DB_HOST=localhost
DB_DATABASE=wdcollect
DB_USERNAME=root
DB_PASSWORD=''
我也想到了这个。。。 然后我通过将数据库信息直接放入“database.php”来解决它 在你的情况下,我会像这样更改信息

mysql' => [
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'wdcollect',
        'username'  => 'root',
        'password'  => '',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],
别忘了在XAMPP的config.inc中更改您的设置

['auth_type'] = 'config';
['Servers'][$i]['user'] = 'root';
['Servers'][$i]['password'] = '';
['AllowNoPassword'] = true;

将.env文件和config.php文件与数据库设置中的用户名、密码和主机名匹配。如果它们不相等,则关系将无法连接。

这对我很有用:

php artisan config:clear
php artisan cache:clear
php artisan config:cache
谢谢

如果您在MAMP上

检查您的端口号,通常是

主机本地主机

8889端口

用户根

密码根


Socket/Applications/MAMP/tmp/mysql/mysql.sock

我也面临同样的问题。一切都很好,但都很好

bootstrap/cache/config.php


总是有不完整的密码。进一步挖掘后,他意识到密码中有“#”字符,该字符将被删除。As“#”用于将一行标记为注释

该.env文件应具有与mysql数据库中相同的数据库名称、用户名和密码,并检查是否授予用户访问数据库的所有权限。 我通过在数据库名称和用户名前面添加cpanel用户名解决了我的问题 与jumbo_admingo和jumbo_user1类似,jumbo是我的cpanel用户名,admingo是我在mysql中创建的数据库名,user1是提供访问数据库admingo权限的用户。
这解决了我的问题。

我所做的事情也面临同样的问题

  • php artisan缓存:清除
  • php artisan配置:缓存
  • 但发现的问题与我运行artisan命令时的问题相同

    php artisan视图:清除


    希望对您有所帮助。

    原因是缓存了旧的数据库凭据
    /bootstap/cache/config.php

    在.env文件中,我对其进行了如下修改

     DB_HOST=localhost
     DB_DATABASE=homestead
     DB_USERNAME=homestead
     DB_PASSWORD=secret
    
    然后删除了那个文件

    /bootstap/cache/config.php 
    
    如果问题仍然存在,您可以尝试以下方法。

    php artisan配置:清除 php artisan缓存:清除 php artisan配置:缓存

    通过编写
    Exit
    命令退出vagrant 然后重新启动vargarnt/homestead配置

    vagrant reload --provision
    
    然后又开了流浪汉

    Vagrant Up
    Vagrant ssh
    
  • 在laravel根目录中编辑文件.env。使外观如下所示:

     DB_HOST=localhost
     DB_DATABASE=laravel
     DB_USERNAME=root
     DB_PASSWORD=your-root-pas
    
  • 还可以在phpmyadmin中创建一个名为“laravel”的数据库

  • 运行以下命令:

     php artisan cache:clear
     php artisan config:cache
     php artisan config:clear   
     php artisan migrate
    

  • 对于我来说,XAMPP与Apache和MySQL一起工作。

    在XAMPP上打开终端>转到
    /opt/lampp/htdocs/project\u name
    >运行
    php artisan migrate

    .env文件

    DB_CONNECTION=mysql
    DB_HOST=localhost
    DB_PORT=8080
    DB_DATABASE=database_name
    DB_USERNAME=root
    DB_PASSWORD=
    

    我也遇到了同样的问题,因此我意识到
    .env
    文件不接受特殊字符,因为我的密码包含这些字符,我在
    config/database.php
    文件中添加了密码。

    在我的情况下,我想连接到安装在windows上的数据库,我过去通过workbench访问该数据库,因此,我将localhost替换为通过在windows命令提示符下键入
    ipconfig
    获得的ip地址 天哪! 多亏了下面的umair.ashfr答案,我终于抓住了一个问题,这个问题吞噬了我的神经元

    我有一个像这样的密码 DB#u PASSWORD=ffjdh5#fgr 在我的.env上,MySQL连接优雅地说“用户的SQLSTATE[HY000][1045]访问被拒绝……”,不管我试图运行什么风格的php artisan

    问题是密码中有“#”符号。 当心!这意味着评论的开始,因此我的密码被悄悄地截断了! 解决方案是像这样声明密码 DB_PASSWORD=“ffjdh5#fgr”


    关于

    在我的例子中,实际上是根用户权限问题。我的
    Laravel
    配置都很完美,但后来我发现这是根用户权限问题,因为我的MySQL配置不知怎么被更改了

    • 所以我导航到xampp folder>C:\xampp\mysql\bin
    • 搜索my.ini文件并在编辑器中打开它,然后在以下位置添加
      跳过授权表
    [mysqld]跳过授权表端口=3306

    它成功了。

    我花了几个小时在这上面:-(最后,它真的很容易被破解

    之前

    DB_PASSWORD=#Root2020$
    
    已更新

    DB_PASSWORD="#Root2020$"
    

    我认为问题出在密码上,这就是为什么我必须将密码写在引号中。

    像DB_password=“2o0”一样声明密码@
    DB_CONNECTION=mysql
    DB_HOST=localhost
    DB_PORT=8080
    DB_DATABASE=database_name
    DB_USERNAME=root
    DB_PASSWORD=
    
    DB_PASSWORD=#Root2020$
    
    DB_PASSWORD="#Root2020$"
    
    DB_PASSWORD=Test@123##   //not working without double quotes.
    
    DB_PASSWORD="Test@123##" //working with double quotes.