【问题标题】:Laravel DataBase Connection: Access denied for userLaravel 数据库连接:用户访问被拒绝
【发布时间】:2017-09-12 10:37:16
【问题描述】:

我使用 .

在 Ampps(Windows 10)上安装 laravel。

它有效。

但现在我想连接到 mysql。

我创建了一个“博客”数据库并更改了这两个文件: .env 文件:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD='mysql'

和 /config/database.php :

  'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'blog'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', 'mysql'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

但当我想迁移时,我仍然收到以下消息:

C:\Program Files (x86)\Ampps\www\blog>php artisan 迁移

[照亮\数据库\查询异常]
SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)(SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations)

[PDO异常]
SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)

【问题讨论】:

  • 请附上错误信息,而不是张贴截图。

标签: mysql laravel phpmyadmin


【解决方案1】:

密码应该是这个

DB_PASSWORD=mysql

不是这个

DB_PASSWORD='mysql'

【讨论】:

  • 它在 namecheap 上对我有用。谢谢
【解决方案2】:

你应该写这个

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

你的环境文件是

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=mysql

同时重启你的服务器。

【讨论】:

    【解决方案3】:

    首先将.env 文件中的密码从DB_PASSWORD='mysql' 更改为DB_PASSWORD=mysql,不带单引号。其次,您应该为您的数据库设置更安全的密码。

    您应该授予 root 用户访问您的数据库的权限。

    GRANT ALL PRIVILEGES ON blog.* TO 'root'@'localhost' identified by 'mysql';
    FLUSH PRIVILEGES;
    

    【讨论】:

    • 这是给我的。我更改了服务器,db 用户可以读写但不能更改表。
    【解决方案4】:

    尝试在命令下运行

    php artisan cache:clear
    

    这应该会更新保存在缓存中的设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多