Laravel SQLSTATE[HY000] [1698] 用户“root”@“localhost”访问被拒绝

Shu*_*rga 5 mysql php-7.2 ubuntu-18.04 laravel-6

我在测试 Laravel 项目的浏览器中收到此错误:

\n
Illuminate\\Database\\QueryException\nSQLSTATE[HY000] [1698] Access denied for user \'root\'@\'localhost\'\n(SQL: select count(*) as aggregate from `users` where `email` = test@test.com)\n
Run Code Online (Sandbox Code Playgroud)\n

我在 Stack Overflow 和其他网站上发现了类似的问题,但给出的所有解决方案都不适合我。

\n

另一个类似的错误代码是关于 MySQL 的,但我的是关于 Laravel 的。不是MySQL。
\n我使用Ubuntu 18.04 (Bionic Beaver)、Laravel 6、LAMP,我的数据库是 MySQL,服务器由 Apache 2.4 提供服务,而不是 Homebrew 或 PHP localhost。

\n

----------(测试项目上下文)

\n

我正在遵循教程,并成功添加了“登录”和“注册”按钮。现在,当我尝试注册新用户时,我遇到了两个权限问题,我可以用 解决sudo chmod这些问题,但我已经在第三个问题上停留了五个小时。如果今天还没有解决问题,我将重新安装所有内容。

\n

根据我的理解,PHP ARTISAN UI:AUTH需要处理所有代码,您只需要PHP ARTISAN MIGRATE在创建我已经完成的授权 UI 之后即可。MIGRATE我实际上可以在 MYSQL 终端中看到数据库中创建的表。

\n

----------(/测试项目上下文)

\n

我尝试过的解决方案:

\n
DB_CONNECTION=mysql\nDB_HOST=127.0.0.1 or 127.0.0.11 or localhost\nDB_PORT=3306 or 33060\nDB_DATABASE=test\nDB_USERNAME=root or I_created_a_new_user_with_all_privileges\nDB_PASSWORD=password\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试在Laravel 的app\\config\\database.php文件中匹配我的数据库配置。

\n

我已经sudo chmod 777 /var/www/html/blog脱离了绝望。

\n

我在终端尝试了一堆清除。

\n
php artisan config:cache\nphp artisan config:clear\nphp artisan cache:clear\n
Run Code Online (Sandbox Code Playgroud)\n

这是app\\config\\database.php文件:

\n
\'mysql\' => [\n            \'driver\' => \'mysql\',\n            \'url\' => env(\'DATABASE_URL\'),  <--- NEVER TRIED THIS PART THOUGH, idk what to put\n            \'host\' => env(\'DB_HOST\', \'127.0.0.1\'), <---- tried all\n            \'port\' => env(\'DB_PORT\', \'3306\'),      <---- tried 33060\n            \'database\' => env(\'DB_DATABASE\', \'forge\'), <--- tried \'test\' as my DB\n            \'username\' => env(\'DB_USERNAME\', \'forge\'), <--- tried \'root\' or \'nico\'\n            \'password\' => env(\'DB_PASSWORD\', \'\'), <--- \'password\'\n            \'unix_socket\' => env(\'DB_SOCKET\', \'\'),\n            \'charset\' => \'utf8mb4\',      <--- tried \'utf8\'\n            \'collation\' => \'utf8mb4_unicode_ci\',\n            \'prefix\' => \'\',\n            \'prefix_indexes\' => true,\n            \'strict\' => true,\n            \'engine\' => null,\n            \'options\' => extension_loaded(\'pdo_mysql\') ? array_filter([\n                PDO::MYSQL_ATTR_SSL_CA => env(\'MYSQL_ATTR_SSL_CA\'),\n            ]) : [],\n        ],\n
Run Code Online (Sandbox Code Playgroud)\n

我已经检查了文件和程序的所有者。它可以是rootwww-data,并确保 Apache2 由rootwww-data之一或两者运行。我用了ps aux | grep apache

\n

我在 Windows\xc2\xa010 WAMP 堆栈中从未遇到过此问题。我已经无计可施了。

\n

我从头开始重新创建了该项目,但仍然遇到相同的错误。

\n

本文解决了这个问题:#1698 - Access Denied for user \'root\'@\'localhost\' mysql -5.7 and ubuntu-16.04

\n
Step 1. `sudo mysql -u root -p`\n\nStep 2. `USE mysql;`\n\nStep 3. `ALTER USER \'root\'@\'localhost\' IDENTIFIED WITH mysql_native_password BY \'admin\';`\n\nHere \'admin\' is your new password, but you can change it.\n\nStep 4. Exit Thanks. You are done.\n
Run Code Online (Sandbox Code Playgroud)\n

小智 1

尝试用双引号引用您的密码(“password”)。有时它有效。