SQLSTATE [HY000] [2002]尝试向数据库写入数据时Laravel拒绝连接
我一直在使用Laravel package for the Wordpress JSON REST API,它工作正常。我想将我的博客贴在我的数据库中。我用phpMyAdmin
添加名为idybrand_laravel
SQLSTATE [HY000] [2002]尝试向数据库写入数据时Laravel拒绝连接
我创建了一个文件app/blogpost
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class blogpost extends Model
{
//
}
和现在的表在我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
我收到的错误是:
QueryException in Connection.php line 770: SQLSTATE[HY000] [2002] Connection refused (SQL: insert into
相关博客文章(
ID ,
wp_id ,
链接,
的updated_at ,
created_at ) values (, , , 2017-02-17 10:21:57, 2017-02-17 10:21:57))
我是否需要写一些代码像init
或save
里面app/blogpost
?有人可以告诉我为什么连接被拒绝?我正在使用localhost
,因为我的项目正在开发而不是生产。
编辑:
在聊天的球员包括davejal一些帮助后,我现在可以BOTH通过在OS X中的命令行来连接到服务器:
$ mysql -u idybrand_dave -pMY_PASSWORD -h 181.224.130.159 idybrand_laravel
,并使用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视频都变得清晰了。基本上,我需要一个在本地运行的服务器环境,这由Vagrant和VMWare Fusion提供。
完成设置后,我可以在浏览器中访问http://idy.app/
,同时homestead-7 VM
正在运行并写入数据库。
我.env
文件:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=33060
DB_DATABASE=idy
DB_USERNAME=homestead
DB_PASSWORD=secret
我已经接受了davejal的答案,因为它使我的解决方案。
有几种可能性为什么你得到这个错误。
- 数据库服务器未启动,请检查您是否仍然可以使用您的phpmyadmin。如果你仍然可以使用它,那么你的数据库服务器没有问题。
- 错误的配置;检查用户名,密码,并在这两个你.ENV文件服务器设置和配置/ database.php中
- 没有特权服务器和数据库或与给定的凭据
纵观步骤,你已经把我认为这是最后。
检查此用户是否可以从远程位置访问数据库。默认情况下,root用户可以在本地访问服务器(localhost,127.0.0.1和:: 1)。
因此请检查用户是否有权访问您的远程IP或从任何地方访问。在博文的模型
你需要添加可填写栏试试这个.. – Sona
@Sona干杯 - 我会尽力 –
保护$可填写= [“FNAME”,“L-NAME”];这样的..广告列名 – Sona