我一直在使用Wordpress JSON REST的Laravel包,它运行得很好。我想把我的博客存储在我的数据库里。我使用phpMyAdmin添加了一个名为idybrand_laravel的表

我创建了一个文件app/blogpost
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class blogpost extends Model
{
//
}现在,在我的BlogController中,我正在尝试一个简单的测试,希望只在表的三个字段中存储数据。
<?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 intoblogposts(id,wp_id,link,updated_at,created_at) values (, , , 2017-02-17 10:21:57, 2017-02-17 10:21:57))
我需要在init或save内部编写一些代码吗?有人能告诉我为什么这个连接被拒绝吗?我使用localhost作为我的项目正在开发中,而不是生产中。
编辑:
在聊天人员(包括davejal )的帮助下,我现在能够通过OS中的命令行连接到服务器:
$ mysql -u idybrand_dave -pMY_PASSWORD -h 181.224.130.159 idybrand_laravel并且使用续集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我还试图按照Sona的建议编辑我的模型,但这没有帮助:
class blogpost extends Model
{
protected $table = 'blogposts';
protected $fillable = array('id', 'wp_id', 'link', 'title', 'author_code', 'content', 'created_at', 'updated_at');
}有谁能解释一下这个错误吗?
最终编辑:
我有一个根本的误解,我认为我可以使用本地的“本地”开发环境将数据写入服务器(Siteground)环境中存在的表中。
一旦我读了Laravel数据库启动,看了Mindspace的这三个视频,一切都变得清晰起来。基本上,我需要一个本地运行的服务器环境,这是由流浪汉和VMWare融合提供的。
在设置它之后,我可以在浏览器中访问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我已经接受了达韦贾尔的回答,因为它使我找到了解决办法。
发布于 2017-02-17 12:05:06
有几种可能会导致这个错误。
看看你已经采取的步骤,我想这是最后一步了。
检查此用户是否可以从远程位置访问数据库。默认情况下,根用户可以在本地访问服务器(localhost,127.0.0.1和:1)。
因此,请检查用户是否可以从您的远程ip或从任何地方访问。
发布于 2018-05-28 05:51:42
我还遇到了"SQLSTATEHY000连接被拒绝“的错误消息,我所需要做的就是更改.env和database.php文件中的MySQL端口号,以匹配MAMP上的端口号。
DB_PORT=3306
'port' => env('DB_PORT', '3306')我将这两个端口号都更改为MAMP中为MySQL配置的端口号。
https://stackoverflow.com/questions/42295955
复制相似问题