Laravel SQLSTATE [HY000] [1698]用户'root'@'localhost'

时间:2019-11-13 09:21:33

标签: mysql ubuntu-18.04 php-7.2 laravel-6

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

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

我在StackOverflow和其他站点中发现了类似的问题,但是给出的所有解决方案都对我无效。 其他类似的错误代码是关于mysql的,而我的是关于Laravel的。不是mysql。
我使用Ubuntu 18.04,Laravel 6,LAMP,我的数据库是Mysql,服务器由Apache2.4提供服务,而不是自制软件或php localhost。

----------(测试项目上下文)
      我正在学习一个教程,并且成功添加了“登录和注册”按钮,现在当我尝试注册新用户时,我遇到了2个权限问题,这些问题我可以用SUDO CHMOD解决,但遇到了第三个问题现在持续5个小时。如果今天还不能解决的话,我将重新安装所有内容。

据我了解,PHP ARTISAN UI:AUTH负责所有代码,创建我已经做过的Authorization UI后,您只需要PHP ARTISAN MIGRATE。我实际上可以在MYSQL终端中看到在数据库中创建的表MIGRATE
----------(/测试项目上下文)

我尝试过的解决方案:
DB_CONNECTION = mysql
DB_HOST = 127.0.0.1或127.0.0.11或localhost
DB_PORT = 3306或33060
DB_DATABASE = test
DB_USERNAME = root或I_created_a_new_user_with_all_privileges
DB_PASSWORD =密码

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

我已经SUDO CHMOD 777 /var/www/html/blog绝望了。
在终端中尝试了一堆清除。

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

这是 app \ config \ database.php

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

我已经检查了文件和程序的所有者,它是ROOT还是www-data,并确保Apache2是通过ROOT或www-data或两者兼而有之。我使用了PS AUX | GREP APACHE

我在Windows 10 WAMP堆栈中从未遇到过此问题,我无能为力。

我从头开始重新创建了项目。还是一样的错误。让我想把我的电脑扔到窗外。

神圣****!本文解决了。 https://askubuntu.com/questions/998920/1698-access-denied-for-user-rootlocalhost-mysql-5-7-and-ubuntu-16-04

step 1. sudo mysql -u root -p

step 2. USE mysql;

step 3. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin';

Here 'admin' is your new password, yo can change it.

step 4. exit Thanks. You are done.

3 个答案:

答案 0 :(得分:0)

请尝试双引密码(“ password”)。有时可以。

答案 1 :(得分:0)

我在密码上使用双引号,它对我有用

答案 2 :(得分:0)

也许您应该更改文件.env

DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

具有config / database.php中的值