我的 Laravel 项目无法连接到 XAMPP 数据库

Posted

技术标签:

【中文标题】我的 Laravel 项目无法连接到 XAMPP 数据库【英文标题】:My Laravel project don't conect to XAMPP DataBase 【发布时间】:2018-09-02 09:10:46 【问题描述】:

我已经在网络上遵循了很好的教程,我确实做了,我已经逐步提出了它的建议,但我无法将我的 laravel 框架连接到 XAMPP.. 我不知道发生了什么.. 我已经用相同的数据配置(DB_DATABASE= styde_curso、DB_USERNAME= root 和 DB_PASSWORD=)写下了 .env 和 config/database.php

.env

APP_NAME=Prueba
APP_ENV=local
APP_KEY=base64:MWU6YadaT17Ga1m3hrtOQqYq6pIwOgrNWQe+mJazyw0=
APP_DEBUG=true
APP_URL=homestead.test
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=styde_curso
DB_USERNAME=root
DB_PASSWORD=

config/database.php

'mysql' => [

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

虽然我应用了“php artisan config:clear”,但得到了相同的结果“ERROR”,我复制了 git hub 注意到我的错误:

vagrant@homestead:~/code/Prueba$ php artisan config:clear 配置缓存清除! vagrant@homestead:~/code/Prueba$ php 工匠迁移

Illuminate\Database\QueryException : SQLSTATE[HY000] [1045] 访问 拒绝用户'root'@'localhost'(使用密码:否)(SQL:选择 * 来自 information_schema.tables 其中 table_schema = styde_curso 和 table_name = 迁移)

/home/vagrant/code/Prueba/vendor/laravel/framework/src/Illuminate/Database/Connection.php: 664

660|         // If an exception occurs when attempting to run a query, we'll format the error
661|         // message to include the bindings with SQL, which will make this exception a
662|         // lot more helpful to the developer instead of just the database's errors.

663|         catch (Exception $e) 
664|             throw new QueryException(
665|                 $query, $this->prepareBindings($bindings), $e
666|             );
667|         
668|

异常跟踪:

1 PDOException::("SQLSTATE[HY000] [1045] 拒绝用户访问 'root'@'localhost' (使用密码: NO)") /home/vagrant/code/Prueba/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php : 68

2 PDO::__construct("mysql:host=localhost;port=3306;dbname=styde_curso", “根”, ””, []) /home/vagrant/code/Prueba/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php : 68

我会等待你的帮助或任何可以帮助我的人.. 谢谢。

【问题讨论】:

您的本地数据库用户名是 root 并且没有您在配置中的密码? 设置ENV变量后是否重启了服务器? 是的,我的配置如上所述.. 大多数时候 XAMPP 上用户 root 的密码为空。我也重新启动了我的服务器。此外,我在“ini.php”中更改了 var mysqli.default_host= mysql.sock 并且没有任何效果 【参考方案1】:

有时当您更改 .env 文件 而不重新启动服务器时会出现此问题。我建议您将 'host' => env('DB_HOST', '127.0.0.1') 更改为 localhost

重启你的服务器,因为config/database也写成localhost

【讨论】:

【参考方案2】:

我建议将您的 DB_HOST 设置为 127.0.0.1

DB_HOST=127.0.0.1

如果您还没有为数据库 root 用户设置密码,我还建议您设置密码,这只是一个好习惯。如果您选择这样做,请务必使用新密码更新 .env 文件。

错误告诉你登录失败:

SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)

该错误很可能是由于凭据不正确(缺少或错误的用户名/密码)造成的。或者访问不正确,换句话说,您的用户(在本例中为 root)可能具有 root@127.0.0.1 的权限,但没有 root@localhost 的权限。

【讨论】:

以上是关于我的 Laravel 项目无法连接到 XAMPP 数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 XAMPP 连接到 Apache 服务器

将 Laravel 连接到 XAMPP MySQL (MariaDB) 数据库 SQLSTATE[HY000] [2006] MySQL 服务器已消失

Laravel 8 数据库连接拒绝 MacBook

无法将 MySQL 连接到 XAMPP

端口已转发,但仍无法连接到 XAMPP

如何将 Laravel 8 连接到 oracle 11g 数据库?