我在我的测试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)
我在Stack Overflow和其他网站上也发现过类似的问题,但是所有的解决方案都不适合我。
另一个类似的错误代码是关于MySQL的,但我的是关于Laravel的,而不是MySQL。
我使用Ubuntu 18.04(仿生海狸),Laravel 6,LAMP,我的数据库是MySQL,服务器是由Apache 2.4服务的,而不是Homebrew或PHP localhost。
- --------(测试项目上下文)
我正在学习教程,成功添加了登录和注册按钮。现在,当我尝试注册新用户时,遇到了两个权限问题,我可以用sudo chmod
解决,但我已经被第三个问题困扰了五个小时。如果今天之前没有解决好,我将重新安装所有程序。
在我的理解PHP ARTISAN UI:AUTH
照顾所有的代码,你只需要PHP ARTISAN MIGRATE
后,创建授权用户界面,我已经做了。我实际上可以看到表MIGRATE
创建在数据库中的MYSQL终端。 - --------(/测试项目上下文)
我尝试过的解决方案:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1 or 127.0.0.11 or localhost
DB_PORT=3306 or 33060
DB_DATABASE=test
DB_USERNAME=root or I_created_a_new_user_with_all_privileges
DB_PASSWORD=password
我尝试在Laravel的 * app\config\database. php * 文件中匹配我的数据库配置。
我已经绝望了。
我在候机厅试了好几次。
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堆栈中遇到过这个问题。我已经无计可施了。
我从头开始重新创建了项目,但仍然得到相同的错误。
这篇文章解决了它: 一个月一次 *
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, but you can change it.
Step 4. Exit Thanks. You are done.
5条答案
按热度按时间kr98yfug1#
也许你应该更改文件.env
其值与config/database.php中的值相同
6kkfgxo02#
试着用双引号把你的密码(“password”)括起来,有时候会有用。
rjzwgtxy3#
我用双引号在我的密码和它为我工作。
nxowjjhe4#
试试这个溶液!
nhaq1z215#
我找到的解决方案是安装xampp并从那里使用mariadb,它非常适合我。
使用el traductor帕拉描述lo de arriba xd