php - laravel 无法连接到 VM LAMP 上的 mysql 数据库

标签 php mysql database laravel-5.1

嘿伙计们,我正在尝试学习 Laravel,并且正在按照教程进行操作,但我似乎无法通过运行 LAMP 的 VM 连接到我的数据库。我浏览了每一篇文章,但没有任何效果

当我运行命令php artisan migrate时我收到以下错误

[PDOException]<br/> SQLSTATE[HY000] [2003] Can't connect to MySQL server on '10.0.1.22' (111)

我什至关注了这个post并出现以下错误

[PDOException]<br/> SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/opt/lampp/var/mysql/mysql.sock' (2)

我的 laravel 应用程序正在端口 8000 上运行但我的 phpmyadmin 位于 10.0.1.22/phpmyadmin我不确定这是否是问题所在,我仍然是初学者,所以我的调试解决方案是有限的。

这是我的database.php文件和我的.envi文件

数据库.php

        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', '10.0.1.22'),
            'database'  => env('DB_DATABASE', 'task'),
            'username'  => env('DB_USERNAME', 'root'),
            'password'  => env('DB_PASSWORD', 'test'),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

和我的 .envi 文件

APP_ENV=local
APP_DEBUG=true
APP_KEY=HBzhX830sIrNbZ2hdB23DGAuGa4mj4IL

DB_HOST=10.0.1.22
DB_DATABASE=task
DB_USERNAME=root
DB_PASSWORD=test

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

感谢大家的帮助

最佳答案

将 DB_HOST 更改为 127.0.0.1

10.0.1.22 是从您的计算机到 VM 计算机的外部地址。 由于 Apache/PHP 和 MySQL 在同一台计算机上运行,​​因此没有理由将它们与外部地址连接,而是与内部地址(127.0.0.1)连接。

当您在MySQL中创建用户时,您可以设置它应该接受来自哪些IP地址的连接,并且默认情况下,在大多数情况下,root用户通常设置为仅监听内部调用(127.0.0.1)。

关于php - laravel 无法连接到 VM LAMP 上的 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34037211/

相关文章:

php - 修改后的 PHP get_meta_tags 不适用于某些 URL

php - Elasticsearch。嵌套查询嵌套

mysql - 提高mysql性能

php - 为每个帖子动态添加列到 WordPress 自定义数据库表

php - 将 CSS 连接到 wordpress 的子主题

PHP MySql 更新查询不起作用,说 :- Undefined Index

mysql - 如何在 sql 中编写子查询以映射字典值

php - 将数据插入两个数据库,其中一个是第三方数据库

mysql - 尝试启动 MySQL 时出错

php - 如何将代码中的条件调整集中到不同页面上?