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

时间:2015-12-02 07:38:09

标签: php mysql database laravel-5.1

嘿伙计们我试图学习laravel和我跟随tutorail但我似乎无法通过运行LAMP的VM连接到我的数据库。我通过每一个帖子都看过,而且还没有任何工作

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

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

我甚至遵循了此post并收到以下错误

[PDOException]
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文件

database.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

感谢所有帮助

2 个答案:

答案 0 :(得分:1)

将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)。

答案 1 :(得分:0)

更改您的

DB_HOST=10.0.1.22

DB_HOST = 127.0.0.1
  

因为Loaclhost在此端口上定义。只是意味着127.0.0.1 == localhost

$cfg['Servers'][$i]['host']