mysql - MySQL访问被拒绝?
问题描述
堆栈:PHP,Laravel。使用 Vs-code 和 tableplus。
我的目标是跟随 laracast 视频系列尝试学习 laravel /php 编码。
在视频系列中,我确实创建并连接到了 mySQL 数据库。在某些时候,不确定我做了什么,但是在使用终端或 tableplus(之前已连接)时我根本无法连接到数据库。
在我输入的终端MySQL -u root
中,我收到了密码(没有密码),然后我按 Enter 并出现错误。它以前可以正常工作,但我不确定我现在做了什么会引发此错误。正如您在下面 DB_Password'' 下的代码中看到的那样,没有分配任何内容。
错误 1045 (28000): 用户 'root'@'localhost' 的访问被拒绝(使用密码:否)
.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 系统上的管理员用户一样。
现在,关于您的问题,只是有一个您可能不知道的密码。MySQL 安装中常用的用户名和密码组合是“root”和“root”(显然非常不安全,但仅供本地使用)。
如果这不起作用,您将不得不使用更多低级管理工具,这进一步取决于您的安装。然后,这些将使用对数据库的操作系统级别访问,这可能需要使用sudo
. 你能分享一些关于你是如何安装的,在什么系统上的信息吗?如果您还没有找到方法,这可能会提供将您推向正确方向所需的额外信息。
推荐阅读
- r - 尝试从 R(Windows 10 和 Git Bash)运行脚本时出现“找不到命令”错误
- java - Spring Boot:是否可以将对象列表作为 QueryParameter 发送?
- c# - POST 到 API 的 400 错误请求
- docusignapi - Docusign 响应式签名文本选项卡
- r - How to use numbers in another vector to specify the name of a matrix in R?
- spring-boot - 将集成测试用例与构建分离的最佳方法(gradle spring-boot)
- typescript - 如何使用打字稿在本机反应中通过导航传递道具
- laravel - 在 Laravel 中调用 null 上的成员函数 getTraceAsString()
- vue.js - 无权访问 GraphQl 中的突变
- java - java intellij - 如何构建基于目录的项目?