嘿伙计们,我正在尝试学习 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/