【问题标题】:Laravel 5 on digitalocean: cannot connect to databasedigitalocean上的Laravel 5:无法连接到数据库
【发布时间】:2020-04-13 01:06:37
【问题描述】:

我在 env 文件中有这个

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE={db_name}
DB_USERNAME=root
DB_PASSWORD={db_password}

我配置/database.php

'default' => env('DB_CONNECTION', 'mysql'),
 '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' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => false, //true is default
        'engine' => null,
    ],

我就是这样得到密码的:

cat /root/.digitalocean_password

但我明白了

SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' (SQL: select * from `users` where `email` ....

我什至清除了 env 文件中的密码值,但 ti 也不起作用。请问有什么帮助吗?提前致谢。

【问题讨论】:

  • 您是否尝试通过 SSH 在您的数据库上连接并尝试执行 sudo mysql -uroot -p 命令并输入您的密码?

标签: mysql ubuntu laravel-5 digital-ocean


【解决方案1】:

回溯您的问题。尝试通过数据库服务器上的 SSH 连接。然后尝试这样做

$ sudo  mysql -uroot -p
$ password : ******** (enter your password here)

如果您能够连接,那么您的应用级别可能不会有任何问题。

第二种选择是:尝试使用主机"localhost" 而不是"127.0.0.1" 作为您的root 用户名可能只指向@localhost 而不是@127.0.0.1

【讨论】:

    【解决方案2】:

    这是我得到的解决方案:

    我必须创建另一个用户而不是 root 并将所有权限添加到该新用户,这肯定会有一个新密码。我在.env 文件中使用该用户名和密码进行数据库连接,它工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      • 2017-11-21
      • 2021-04-21
      • 2014-07-28
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多