2017-02-17 2 views
0

나는 Laravel package for the Wordpress JSON REST API을 사용하고 있으며 정상적으로 작동합니다. 내 블로그 포스트를 내 데이터베이스에 저장하고 싶습니다. 나는라는 이름의 테이블 내가 파일 app/blogpostSQLSTATE [HY000] [2002] 데이터베이스에 데이터를 쓰려고 할 때 Laravel과 연결이 거부되었습니다.

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class blogpost extends Model 
{ 
    // 
} 

와 지금을 만들어 enter image description here

idybrand_laravel

을 추가 phpMyAdmin를 사용하여 내 BlogController 난 그냥 3에 데이터를 저장하고자하는, 간단한 테스트를 시도하고있다 표의 필드

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 

use WpApi; 

use App\blogpost; 

use Carbon\Carbon; 

class BlogController extends Controller 
{ 
    public function getPosts() 
    { 

    foreach (WpApi::posts() as $post) { 
     $this->createPost($post); 
    } 
    //return view('pages.blog', ['active'=>'navBlog'])->with('posts',  WpApi::posts()); 
    } 

    protected function createPost($data) 
    { 
    $post = new blogpost(); 
    $post->id = $post['id'];   // integer 
    $post->wp_id = $post['id'];  // integer 
    $post->link = $post['link'];   //string 
    $post->save(); 

    return $post; 
    } 

} 

변하지 않았습니다. config/database.php.env 파일은 다음과 같습니다

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=idybrand_laravel 
DB_USERNAME=idybrand_dave 
DB_PASSWORD=myPassword 

I 나타나는 오류는 다음과 같습니다

QueryException in Connection.php line 770: SQLSTATE[HY000] [2002] Connection refused (SQL: insert into 블로그 게시물 ( ID ,, created_at updated_at , 링크 ,를 wp_id ) values (, , , 2017-02-17 10:21:57, 2017-02-17 10:21:57))

내가 코드를 작성해야합니까 init 또는 save ~ app/blogpost? 아무도 왜 연결이 거부되는지 말해 줄 수 있습니까? 내 프로젝트가 개발 단계가 아니기 때문에 localhost을 사용하고 있습니다.

는 편집 :

$ mysql -u idybrand_dave -pMY_PASSWORD -h 181.224.130.159 idybrand_laravel 

및 사용 : davejal을 포함하여 채팅에서 사람의 도움 후

, 지금은 둘 다 OS X에서 명령 줄을 통해 서버에 연결할 수 있어요 Sequel Pro에 문제가 없습니다. 하지만 내 .env 파일에 그 동일한 설정을 사용하여 연결을 시도 할 때 나는 아직도 Laravel에서 같은 오류가 발생합니다 : 나는 또한 소나에 의해 제안 내 모델을 편집하려

DB_CONNECTION=mysql 
DB_HOST=181.224.130.159 //Siteground IP Address 
DB_PORT=3306 
DB_DATABASE=idybrand_laravel 
DB_USERNAME=idybrand_dave 
DB_PASSWORD=MY_PASSWORD 

하지만 도움이되지 않습니다

class blogpost extends Model 
{ 
    protected $table = 'blogposts'; 
    protected $fillable = array('id', 'wp_id', 'link', 'title', 'author_code', 'content', 'created_at', 'updated_at'); 
} 

누구든지이 오류에 대해 밝히실 수 있습니까?

최종 편집 :

나는 내가이 '생산에 서버 (Siteground)에 존재하는 테이블에 데이터를 작성하는 로컬 호스트'지역 '개발 환경을 사용할 수 있다고 생각한다는 점에서 근본적인 오해가 있었다 환경.

일단 Laravel Database Getting Started을 읽고 Mindspace가 these three 개의 동영상을 본 것은 분명합니다. 기본적으로 로컬에서 실행되는 서버 환경이 필요했으며 이는 VagrantVMWare Fusion에 의해 제공됩니다.

설정 후 homestead-7 VM이 실행 중이었고 데이터베이스에 쓰는 동안 브라우저에서 http://idy.app/에 액세스 할 수있었습니다.

.env 파일 :이 솔루션에 저를 인도로 나는 davejal의 답변을 수락 한

DB_CONNECTION=mysql 
DB_HOST=localhost 
DB_PORT=33060 
DB_DATABASE=idy 
DB_USERNAME=homestead 
DB_PASSWORD=secret 

.

+0

blogpost 모델에서 채우기 가능한 열을 추가해야합니다. – Sona

+0

@Sona 건배 - 내가 시도해 보겠습니다 –

+0

보호 된 $ fillable = [ 'fname', 'lname'];이 .. 광고 열 이름 – Sona

답변

0

이 오류가 발생하는 이유는 몇 가지가 있습니다.

  • 데이터베이스 서버가 시작되지 않았 으면 phpmyadmin을 계속 사용할 수 있는지 확인하십시오. 여전히 사용할 수 있으면 데이터베이스 서버에 문제가없는 것입니다.
  • 잘못된 설정입니다. 나는 그것이 생각이 이미 수행 한 단계를 보면 주어진 자격 증명

와 함께/서버 및 또는 데이터베이스에 database.php

  • 어떤 권한을 사용자 이름, 암호 및 모두 당신은 .env 파일 서버 설정 및 설정을 확인하지 마지막.

    이 사용자가 원격 위치에서 데이터베이스에 액세스 할 수 있는지 확인하십시오. 기본적으로 루트 사용자는 로컬로 서버에 액세스 할 수 있습니다 (localhost, 127.0.0.1 및 :: 1).

    사용자가 원격 IP 또는 어디에서든지 액세스 할 수 있는지 확인하십시오.

  • 관련 문제