SQLSTATE[HY000] [1045]拒绝用户'root'@'localhost'访问

4
我执行了 php artisan make:auth 命令并尝试注册新用户,但是出现了错误。我使用 Xampp 作为 MySQL,并创建了一个名为 'pari' 的数据库,设置用户为 root 和密码为 root。在启动了 xampp apache 和 SQL 服务器以及在 cmd 中执行 PHP artisan serve 后,每次都会出现相同的错误。

SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) (SQL: select count(*) as aggregate from users where email = avinashjk1620@gmail.com)

步骤1:我已更改了 .env 文件。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=pari
DB_USERNAME=root
DB_PASSWORD=root

步骤2:我已经修改了config\database.php文件为-

并重新启动php artisan serve,但仍然出现了相同的错误。

 'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'pari'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', 'root'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

但是又出现了相同的错误。 步骤3:我尝试了


  php artisan cache:clear 
  php artisan config:clear

但是我再次遇到了相同的错误。

步骤4:从phpmyadmin、.env和database.php中删除密码后,我遇到了新的错误-

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'pari.users' doesn't exist (SQL: select count(*) as aggregate from `users` where `email` = avinashjk1620@gmail.com)

如何修复这个错误,请帮忙。

清除缓存并重启服务器 - Rahul
我已经清除了缓存并进行了配置,但仍然出现相同的错误。 - Avinash Kumar Yadav
你的SQL有密码吗?尝试使用提供的凭据登录,并将端口删除后重新检查。 - Exprator
是的,密码是root。我已经多次更改并尝试过,但仍然出现相同的错误。 - Avinash Kumar Yadav
是的,我尝试了,但出现了错误("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes")。 - Avinash Kumar Yadav
显示剩余2条评论
6个回答

2

确保您的所有字段都正确设置,特别是您的密码。

最初的回答:

确保您的所有字段都正确设置,特别是您的密码。

    $this->server = "localhost";
    $this->username = "root";
    $this->password = "";
    $this->dbName = "dbone";
    $this->charset = "utf8mb4";

1
如果在Cpanel上仍然存在与服务器连接的问题,我通过将密码放入“”引号中来解决它,然后一切都可以正确响应。
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=sppro DB_USERNAME=sppro DB_PASSWORD="sppro123#"
完成后,我能够登录文件。

1

在更改凭据后,请执行以下操作:

php artisan config:clear 
restart php artisan

奇怪。你能确认你正在正确的项目上重新启动artisan吗?有时我会错误地在不同的项目上操作。愚蠢的错误。 - Thamaraiselvam
如果是新的,那就删除项目并创建新的。 - Thamaraiselvam
当我有根密码时,我尝试了那个操作,但是仍然得到相同的错误。在删除密码后,我尝试运行“php artisan migrate”,但是它仍然报错。 - Avinash Kumar Yadav
Illuminate\Database\QueryException: SQLSTATE[42000]: 语法错误或访问违规:1071 指定的键太长;最大键长度为767字节 (SQL: alter table users add unique users_email_unique(email)) - Avinash Kumar Yadav
我已经完成了,但是仍然出现相同的错误(“SQLSTATE[42000]:语法错误或访问冲突:1071指定的键太长;最大键长度为767个字节”)。 - Avinash Kumar Yadav
显示剩余8条评论

0
确保你的数据库是使用utf8mb4_unicode_ci排序规则创建的。这应该可以解决你的1071错误。
或者你可以在app\Providers\AppServiceProvider.php文件中的boot()方法中添加Schema::defaultStringLength(191);
编辑:确保添加use Illuminate\Support\Facades\Schema;

在boot()方法中添加后,运行php artisan migrate时出现错误Symfony\Component\Debug\Exception\FatalThrowableError:找不到类'App\Providers\Schema'位于D:\Php mine\Laravel\happyHome\app\Providers\AppServiceProvider.php的第16行。 - Avinash Kumar Yadav
修改了我的答案,你需要添加 Schema 类的命名空间。 - brombeer

0

我正在使用Ubuntu 22.04上的xampp,并通过以下步骤解决了问题:

  1. 使用http://localhost/phpmyadmin进入phpmyadmin中的用户帐户
  2. 从列表中选择用户
  3. 点击登录信息
  4. 在主机名下拉菜单中选择localhost。默认值为%
  5. 点击Go

当我在Windows机器上使用xampp时,我从未遇到过这个问题。


0

只需更改.env文件,不要更改config/database.php文件。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1 or IP address
DB_PORT=3306
DB_DATABASE='your database name'
DB_USERNAME='your username'
DB_PASSWORD='your password'

对我来说有效!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接