我的 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 数据库的主要内容,如果未能解决你的问题,请参考以下文章
将 Laravel 连接到 XAMPP MySQL (MariaDB) 数据库 SQLSTATE[HY000] [2006] MySQL 服务器已消失