堆栈:PHP、Laravel。使用了Vs-code和tableplus。
我的目标是跟随 laracast 视频系列尝试学习 laravel/php 编码。
在视频系列中,我确实创建并连接到 mySQL 数据库。在某些时候,不确定我做了什么,但在使用终端或 tableplus(之前已连接)时我根本无法连接到数据库。
在终端中,我输入 MySQL -u root
但收到密码(没有密码),然后我按 Enter 键并出现错误。它之前可以正常运行,但我不确定我做了什么,现在引发了这个错误。正如您在下面的 DB_Password'' 下的代码中看到的那样,没有分配任何内容。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
.env 文件如下:
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1 DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=file SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null
AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET=
PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"'''
From my understanding (google) this is a mysql issue and not larvael?!?
I am not really sure what else to do here...
Here is the PostsContoller.php (incase its needed)
```<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; use App\Post; class PostsController extends Controller { public function show($slug) { $post = Post::where('slug', $slug)->first(); if (! $post) { abort(404); } return view('post',[ 'post' => $post ]); } ```
**Additional error code in terminal:**
``` catch (Exception $e) {
> 665| throw new QueryException(
666| $query, $this->prepareBindings($bindings), $e
667| );
668| }```
Exception trace:
1 PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)")
/Users/paolo/Desktop/webapp/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
2 PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=laravel", "root", "", [])
/Users/paolo/Desktop/webapp/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
Please use the argument -v to see more details.
最佳答案
首先,sudo
完全是错误的工具。这就像以 root 身份运行浏览器才能访问您的网上银行。否,服务器向客户端发出身份验证请求。该服务器既不知道也不关心您以什么用户身份运行。请注意,为了增加困惑,MySQL 的“默认”用户通常被命名为“root”,就像 Unix 系统上的 admin 用户一样。
现在,关于您的问题,很简单,有一个您可能不知道的密码。 MySQL 安装时常用的用户名和密码组合是“root”和“root”(显然极其不安全,但仅适用于本地使用)。
如果这不起作用,您将不得不使用更多低级管理工具,这进一步取决于您的安装。然后,这些将使用操作系统级别的数据库访问权限,这可能需要使用 sudo 来完成。您能否分享一些有关如何安装、在什么系统上安装等信息?如果您还没有找到方法,这可能会提供所需的附加信息来插入您走向正确的方向。
关于MySQL 访问被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59237129/