MySQL 访问被拒绝?
MySQL access denied?
堆栈:PHP,Laravel。使用了 Vs-code 和 tableplus。
我的目标是跟随 laracast 视频系列尝试学习 laravel /php 编码。
在视频系列中,我确实创建并连接到 mySQL 数据库。在某些时候,不确定我做了什么,但是在使用终端或 tableplus(之前已连接)时我根本无法连接到数据库。
在终端中我输入 MySQL -u root
但我收到密码(没有密码),然后我按回车键并出现错误。它之前可以正常工作,但我不确定我现在做了什么会引发此错误。正如您在下面 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 的 "default" 用户通常被命名为 "root",就像 Unix 系统上的管理员用户一样。
现在,关于您的问题,很简单,有一个您可能不知道的密码。 MySQL 安装经常使用的用户名和密码组合是 "root" 和 "root"(显然非常不安全,但仅供本地使用)。
如果这不起作用,您将不得不使用更多低级管理工具,这进一步取决于您的安装。然后,这些将使用 OS 级别的数据库访问权限,这可能需要使用 sudo
来完成。你能分享一些关于你是如何安装的,在什么系统上安装的信息吗?如果您还没有找到方法,它可能会提供将您推向正确方向所需的额外信息。
好吧,经过多次来回,问题是我试图登录到 MYSQL 数据库,但使用 .env laravel 输入,如用户名:abc 和 password:123我更改并保存在 .env laravel 项目文件中。
相反,我通过终端并能够使用 u-root 登录 MYSQL。然后我继续创建一个新数据库,该数据库的名称与 .env 中的名称相同,具有上述凭据 username:abc password:123。
成功,我终于可以重新获得数据库的控制权了。
我希望这反过来可以帮助可能遇到类似问题的任何人。
堆栈:PHP,Laravel。使用了 Vs-code 和 tableplus。
我的目标是跟随 laracast 视频系列尝试学习 laravel /php 编码。
在视频系列中,我确实创建并连接到 mySQL 数据库。在某些时候,不确定我做了什么,但是在使用终端或 tableplus(之前已连接)时我根本无法连接到数据库。
在终端中我输入 MySQL -u root
但我收到密码(没有密码),然后我按回车键并出现错误。它之前可以正常工作,但我不确定我现在做了什么会引发此错误。正如您在下面 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 的 "default" 用户通常被命名为 "root",就像 Unix 系统上的管理员用户一样。
现在,关于您的问题,很简单,有一个您可能不知道的密码。 MySQL 安装经常使用的用户名和密码组合是 "root" 和 "root"(显然非常不安全,但仅供本地使用)。
如果这不起作用,您将不得不使用更多低级管理工具,这进一步取决于您的安装。然后,这些将使用 OS 级别的数据库访问权限,这可能需要使用 sudo
来完成。你能分享一些关于你是如何安装的,在什么系统上安装的信息吗?如果您还没有找到方法,它可能会提供将您推向正确方向所需的额外信息。
好吧,经过多次来回,问题是我试图登录到 MYSQL 数据库,但使用 .env laravel 输入,如用户名:abc 和 password:123我更改并保存在 .env laravel 项目文件中。
相反,我通过终端并能够使用 u-root 登录 MYSQL。然后我继续创建一个新数据库,该数据库的名称与 .env 中的名称相同,具有上述凭据 username:abc password:123。
成功,我终于可以重新获得数据库的控制权了。
我希望这反过来可以帮助可能遇到类似问题的任何人。