SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:NO)。 DB_HOST 设置为本地主机
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) . DB_HOST set to localhost
我将 Laravel 项目从本地主机移到了服务器。我在服务器上完成了每一步。
我可以在我的服务器上查看登录页面。问题是我无法连接到我的 MySQL 服务器。
我的 .env
文件:
APP_NAME=Transport
APP_ENV=local
APP_KEY=base64:mrakeyidharhaikonsdf
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=transport_db
DB_USERNAME=root
DB_PASSWORD=mypass
我尝试将主机更改为 127.0.0.1
并尝试输入我服务器的 IP 地址。它没有帮助我。我错过了什么吗?
我的错误:
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select count(*) as aggregate from users
where email
= user.email@gmail.com)
我知道这个问题可能已经在 Stack Overflow 上找到了答案。但我这里有不同的问题。
老实说,在做Laravel 6的时候,我也遇到过很多次这个问题,可能一直想不出解决办法。我试过像这样的命令
php artisan config:cache
和 php artisan config:clear
,但这两个命令没有帮助。
要解决此问题,您必须执行以下所有命令:
php artisan route:cache
php artisan route:clear
php artisan config:cache
php artisan config:clear
php artisan optimize
注意:确保在 .env
中添加了 db_password
且它不为空,同时检查 db_password
是否使用了任何特殊字符。始终将它们括在 ""
.
中
示例:
DB_PASSWORD="%123456%"
要调试此问题,您还可以创建一个测试路由,然后将 .env
变量转储到那里以检查它们是否具有正确的值。
Route::get('/test/env', function () {
dd(env('DB_DATABASE')); // Dump 'db' variable value one by one
});
注意:请务必重启服务器。
确保您的数据库凭据和数据库主机设置正确:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE="your_database_name"
DB_USERNAME="put_db_user_name _here"
DB_PASSWORD="put_db_password_here_if_have_set"
如果您还没有设置任何数据库密码,那么添加:
DB_PASSWORD=""
所以问题是我的。对此我深表歉意。
我没把我的 DB_PASSWROD
放在 ""
里。所以这导致了我的两个小时。
我的密码开头有一些特殊字符。所以它应该在 ""
内以避免出现问题。
例如,如果我的密码是"%helloworld@"
,
然后在 .env
文件中,它应该是:
`DB_PASSWORD="%helloworld@" `
之前,我
`DB_PASSWORD=%helloworld@
我在使用 homestead 的 Laravel 框架中工作时遇到了这样的问题。其实这个错误是因为我没有在Vagrant中创建数据库。所以,我创建了数据库。更多详情:
运行 vagrant ssh
获取 homestead 命令行。
运行 mysql
启动 MySQL 命令行客户端。
运行 create database database_name;
创建您的数据库。注意数据库应该在两个`(not')标记内。
修改Laravel项目的.env文件如下:
DB_CONNECTION=mysql
DB_HOST=192.168.10.10
DB_PORT=3306
DB_DATABASE=askidb2
DB_USERNAME=homestead
DB_PASSWORD=secret
(如果你之前在Laravel个项目中制作过你的模型和配置文件来创建tables),运行 php artisan migrate
在命令中项目文件夹的行。这导致它在 akidb2 数据库中创建 tables。
(也许对你来说是可选的)因为在我设置播种问题所需的文件之前 table 我只是 运行 php artisan db:seed
播种我想要的 table(s).
我在建立与数据库的连接时遇到了这个错误。问题是我在 localhost,而不是 127.0.0.1.
问题是项目制作了缓存文件。必须删除 'config.php' 才能让系统重新启动,您可以通过找到此文件并将其删除来执行此操作:
bootstrap/cache/config.php
就我而言,如果我有 Bitnami WordPress。这是一个使用 Apache/localhost 地址的服务,所以我的 XAMPP 实例只能通过 127.0.0.1 访问,当访问本地主机时我得到 'Access denied error ...'。然后当我停止Bitnami服务时,一切恢复正常。
第一个
DB_DATABASE="your_database_name"
DB_USERNAME="put_db_user_name _here"
DB_PASSWORD="put_db_password_here_if_have_set"
然后输入
php artisan config:clear
这样你的问题就清楚了。然后输入
php artisan migrate
如果您使用 Homestead 来为您的应用程序提供服务,您必须连接到 Homestead 内置数据库。否则,当我尝试连接到 MySQL 安装在我的 Mac.
上的数据库
以下是我连接到 Homestead 数据库的方式。我不确定为什么 Laravel 文档中的主机 → 127.0.0.1 不起作用。
在.env文件中
DB_CONNECTION=mysql
DB_HOST=192.168.10.10
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=homestead
DB_PASSWORD=secret
我使用 Sequel Pro 作为 GUI 来管理数据库,下面是我如何将 Sequel Pro 连接到 Homestead MySQL 数据库。
连接标准模式
主机:192.168.10.10
用户:宅基地
密码:秘密
端口:3306
使用 SSH 模式连接
我遇到这个错误是因为我的 XAMPP root 用户帐户访问权限和密码不匹配 Laravel .env 数据库 DB_USERNAME & DB_PASSWORD.
这将有效:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE="your_database_name"
DB_USERNAME="put_db_user_name _here"
DB_PASSWORD="put_db_password_here_if_have_set"
我将 Laravel 项目从本地主机移到了服务器。我在服务器上完成了每一步。
我可以在我的服务器上查看登录页面。问题是我无法连接到我的 MySQL 服务器。
我的 .env
文件:
APP_NAME=Transport
APP_ENV=local
APP_KEY=base64:mrakeyidharhaikonsdf
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=transport_db
DB_USERNAME=root
DB_PASSWORD=mypass
我尝试将主机更改为 127.0.0.1
并尝试输入我服务器的 IP 地址。它没有帮助我。我错过了什么吗?
我的错误:
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select count(*) as aggregate from
users
where
我知道这个问题可能已经在 Stack Overflow 上找到了答案。但我这里有不同的问题。
老实说,在做Laravel 6的时候,我也遇到过很多次这个问题,可能一直想不出解决办法。我试过像这样的命令
php artisan config:cache
和 php artisan config:clear
,但这两个命令没有帮助。
要解决此问题,您必须执行以下所有命令:
php artisan route:cache
php artisan route:clear
php artisan config:cache
php artisan config:clear
php artisan optimize
注意:确保在 .env
中添加了 db_password
且它不为空,同时检查 db_password
是否使用了任何特殊字符。始终将它们括在 ""
.
示例:
DB_PASSWORD="%123456%"
要调试此问题,您还可以创建一个测试路由,然后将 .env
变量转储到那里以检查它们是否具有正确的值。
Route::get('/test/env', function () {
dd(env('DB_DATABASE')); // Dump 'db' variable value one by one
});
注意:请务必重启服务器。
确保您的数据库凭据和数据库主机设置正确:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE="your_database_name"
DB_USERNAME="put_db_user_name _here"
DB_PASSWORD="put_db_password_here_if_have_set"
如果您还没有设置任何数据库密码,那么添加:
DB_PASSWORD=""
所以问题是我的。对此我深表歉意。
我没把我的 DB_PASSWROD
放在 ""
里。所以这导致了我的两个小时。
我的密码开头有一些特殊字符。所以它应该在 ""
内以避免出现问题。
例如,如果我的密码是"%helloworld@"
,
然后在 .env
文件中,它应该是:
`DB_PASSWORD="%helloworld@" `
之前,我
`DB_PASSWORD=%helloworld@
我在使用 homestead 的 Laravel 框架中工作时遇到了这样的问题。其实这个错误是因为我没有在Vagrant中创建数据库。所以,我创建了数据库。更多详情:
运行
vagrant ssh
获取 homestead 命令行。运行
mysql
启动 MySQL 命令行客户端。运行
create database database_name;
创建您的数据库。注意数据库应该在两个`(not')标记内。修改Laravel项目的.env文件如下:
DB_CONNECTION=mysql DB_HOST=192.168.10.10 DB_PORT=3306 DB_DATABASE=askidb2 DB_USERNAME=homestead DB_PASSWORD=secret
(如果你之前在Laravel个项目中制作过你的模型和配置文件来创建tables),运行
php artisan migrate
在命令中项目文件夹的行。这导致它在 akidb2 数据库中创建 tables。(也许对你来说是可选的)因为在我设置播种问题所需的文件之前 table 我只是 运行
php artisan db:seed
播种我想要的 table(s).
我在建立与数据库的连接时遇到了这个错误。问题是我在 localhost,而不是 127.0.0.1.
问题是项目制作了缓存文件。必须删除 'config.php' 才能让系统重新启动,您可以通过找到此文件并将其删除来执行此操作:
bootstrap/cache/config.php
就我而言,如果我有 Bitnami WordPress。这是一个使用 Apache/localhost 地址的服务,所以我的 XAMPP 实例只能通过 127.0.0.1 访问,当访问本地主机时我得到 'Access denied error ...'。然后当我停止Bitnami服务时,一切恢复正常。
第一个
DB_DATABASE="your_database_name"
DB_USERNAME="put_db_user_name _here"
DB_PASSWORD="put_db_password_here_if_have_set"
然后输入
php artisan config:clear
这样你的问题就清楚了。然后输入
php artisan migrate
如果您使用 Homestead 来为您的应用程序提供服务,您必须连接到 Homestead 内置数据库。否则,当我尝试连接到 MySQL 安装在我的 Mac.
上的数据库以下是我连接到 Homestead 数据库的方式。我不确定为什么 Laravel 文档中的主机 → 127.0.0.1 不起作用。
在.env文件中
DB_CONNECTION=mysql
DB_HOST=192.168.10.10
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=homestead
DB_PASSWORD=secret
我使用 Sequel Pro 作为 GUI 来管理数据库,下面是我如何将 Sequel Pro 连接到 Homestead MySQL 数据库。
连接标准模式
主机:192.168.10.10
用户:宅基地
密码:秘密
端口:3306
使用 SSH 模式连接
我遇到这个错误是因为我的 XAMPP root 用户帐户访问权限和密码不匹配 Laravel .env 数据库 DB_USERNAME & DB_PASSWORD.
这将有效:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE="your_database_name"
DB_USERNAME="put_db_user_name _here"
DB_PASSWORD="put_db_password_here_if_have_set"