我在测试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.
答案 0 :(得分:0)
请尝试双引密码(“ password”)。有时可以。
答案 1 :(得分:0)
我在密码上使用双引号,它对我有用
答案 2 :(得分:0)
也许您应该更改文件.env
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
具有config / database.php中的值