【问题标题】:Access denied for user 'homestead@localhost' .. in laravel 5在 laravel 5 中,用户 'homestead@localhost' 的访问被拒绝
【发布时间】:2015-04-23 00:56:02
【问题描述】:

我使用命令 php artisan migrate 在 laravel 5 中迁移我的数据库 .. 它给了我一个错误:

带有消息“SQLSTATE[HY000] [1045] 访问的异常“PDOException” 拒绝用户'homestead'@'localhost'(使用密码:YES)'

【问题讨论】:

标签: laravel-5


【解决方案1】:

更改 .env 文件后,您必须重新启动服务器。

在命令提示符下的 laravel 中,输入:

php artisan serve

【讨论】:

    【解决方案2】:

    运行以下命令:

    php artisan cache:clear
    php artisan config:cache
    

    【讨论】:

      【解决方案3】:

      两种方法解决

      打开您的数据库配置文件 (laravel_root/config/database.php) 并搜索以下代码块。

      'host' => env('DB_HOST', 'localhost'),
      'database'  => env('DB_DATABASE', 'blog'),
      'username'  => env('DB_USERNAME', 'root'),
      'password'  => env('DB_PASSWORD', ''),
      

      如下修改代码块

      'host'      => 'enteryourHostName',
      'database'  => 'ebterYourDatabastName',
      'username'  => 'enterYoutDatabaseUsername',
      'password'  => 'enterYourDatabasePassword',
      

      第二种方式(Laravel 推荐)

      检查你的 Laravel 根目录有一个文件调用 .env 如果不存在,查找 .env.example,复制/重命名为 .env 之后文件看起来很糟糕!

      APP_ENV=local
      APP_DEBUG=true
      APP_KEY=someRandomNumber
      
      DB_HOST=localhost
      DB_DATABASE=homestead
      DB_USERNAME=homestead
      DB_PASSWORD=secret
      
      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
      

      将下面的块修改如下

      DB_HOST=yourHostName
      DB_DATABASE=yourDatabaseName
      DB_USERNAME=yourDatabaseUsername
      DB_PASSWORD=youPassword
      

      这对我有用。

      【讨论】:

        【解决方案4】:

        如果您在 .env 文件中的所有配置都正常,那么您应该:

        Terminal 中运行此命令,列出其中包含 php 的进程:

        ps -ef | grep php
        

        然后:

        501 4529 599 0 Sat03PM ttys000 0:00.15 php artisan serve

        501 4533 4529 0 Sat03PM ttys000 0:25.11 /usr/bin/php -S 127.0.0.1:8000 /Applications/XAMPP/xamppfiles/htdocs/ds7/laravel/coffeeshop/server.php

        使用kill命令终止进程(注意:进程id是第二列数字组。)

        kill 4529
        kill 4533
        

        然后运行php artisan config:clear

        最后,重启服务器:

        php artisan serve
        

        【讨论】:

          【解决方案5】:
            'mysql' => [
                          'driver' => 'mysql',
                          'host' => env('DB_HOST', '127.0.0.1'),
                          'port' => env('DB_PORT', '3306'),
                          'database' => 'laravel',
                          'username' => 'root',
                          'password' => 'PASSWORD IF HAVE OTHERWISE LEAVE IT BLANK ',
                          'unix_socket' => env('DB_SOCKET', ''),
                          'charset' => 'utf8mb4',
                          'collation' => 'utf8mb4_unicode_ci',
                          'prefix' => '',
                          'strict' => true,
                          'engine' => null,
                      ],
          

          从数据库、主机和密码中删除 ENV 值并将它们直接放入

          【讨论】:

            【解决方案6】:

            在您的 .env 文件中 从

            更改 DB_PORT
            DB_PORT=3306
            

            DB_PORT=33060
            

            参考https://laravel.com/docs/5.4/homestead#connecting-to-databases

            小心最后的零

            【讨论】:

              【解决方案7】:

              编辑 .env 文件

              DB_CONNECTION=mysql
              DB_HOST=127.0.0.1
              DB_PORT=3306
              DB_DATABASE=yourdbname
              DB_USERNAME=yourusername
              DB_PASSWORD=yourpassword
              

              然后输入你的 cmd

              php artisan migrate
              

              它肯定会起作用

              【讨论】:

                【解决方案8】:

                未来的某个时候。尝试先清除您的配置

                php artisan config:clear. 
                

                关闭所有终端/cmd 窗口,然后重新启动终端/CMD,这应该可以消除错误消息。看看它是否有效。

                【讨论】:

                  【解决方案9】:

                  在你的database.php文件中,去掉'DB_DATABASE' 'DB_USERNAME' 'DB_PASSWORD'

                  并替换为您的数据库名称、用户名和密码

                  这对你来说很好。

                  【讨论】:

                    【解决方案10】:

                    在您的 Laravel .env 文件中,相应地更改变量以匹配您所需的设置。

                    如果您在 mysql 数据库中使用 XAMMP 或 EasyPHP 之类的东西,也许使用以下设置

                     DB_HOST=localhost
                     DB_DATABASE=mysql
                     DB_USERNAME=root
                     DB_PASSWORD=''
                    

                    【讨论】:

                      【解决方案11】:

                      这个问题之前被问过好几次......查看我找到的最佳答案:

                      这个错误背后的问题可能是:

                      • 您的 .env 文件和 config/database.php 不正确。
                      • 您没有在配置文件中设置正确的unix_socket 值,请检查Question 2
                      • 您正在尝试从本地计算机运行php artisan migrate:install。您应该通过 SSH 连接到 VM homestead ssh 并从那里运行您的迁移,查看 Question 1

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2017-10-14
                        • 2015-06-03
                        • 2019-01-23
                        • 2015-06-04
                        • 2017-03-24
                        • 1970-01-01
                        相关资源
                        最近更新 更多