SQLSTATE [HY000] [2002]连接仅在浏览器中被拒绝

时间:2016-08-30 05:45:44

标签: laravel homestead laravel-5.3

我在OS X Yosemite上,用Laravel 5.3运行最新的家园。

我能够从OS X运行并重置终端中的迁移。当我使用标准连接使用Sequel Pro连接到数据库时,我可以看到这些表。当我通过SSH进入虚拟框并运行mysql -uhomestead -psecret时,我甚至会看到表格。

问题是,当我尝试从浏览器注册新用户时,出现PDOException in Connector.php line 119: SQLSTATE[HY000] [2002] Connection refused错误。当我运行php artisan serve并在http://localhost:8000/register填写表单时,它可以正常工作。

我尝试将DB_HOST更改为192.168.10.10,但这会导致迁移失败。

我可能在尝试安装mysql时创建了一些混乱。我用自制软件安装它。然后我跑了mysql.server start,另一点我跑了brew services start mysql,因为我不确定它是否正常工作。

Homestead.yml文件:

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/code/laravel
      to: /home/vagrant/laravel
      type: "nfs"

sites:
    - map: votingapp.dev
      to: /home/vagrant/laravel/votingapp/public

databases:
    - homestead

.env文件:

    APP_ENV=local
    APP_KEY=base64:xxxxxxxx
    APP_DEBUG=true
    APP_LOG_LEVEL=debug
    APP_URL=http://localhost

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=33060
    DB_DATABASE=votingapp_development
    DB_USERNAME=homestead
    DB_PASSWORD=secret

web.php文件:

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index');

2 个答案:

答案 0 :(得分:1)

事实证明我的端口号错了。在.env文件中它应该是3306,而在Sequel Pro中它应该是33060。

根据Laravel手册的Connecting to databases

  

连接时,您应该只使用这些非标准端口   来自主机的数据库。您将使用默认3306和   自Laravel以来Laravel数据库配置文件中的5432个端口   正在虚拟机中运行。

答案 1 :(得分:0)

如果您在127.0.0.1中使用Mamp,请添加:8889或您的配置mamp端口。enter image description here

127.0.0.1:8889或localhost:8889