Laravel SQLSTATE [HY000] [2002]当“控制器”中的命令被拒绝时,连接正常,但在修补程序中通常会出现单词

时间:2019-05-11 13:23:44

标签: php mysql database laravel connection

因此,我试图在我的项目(词典)中进行自动完成,并且如果使用#Tinker测试SQL命令,则SQL可以正常工作。

# php artisan tinker

Psy Shell v0.9.9 (PHP 7.1.19 — cli)
>>> use App\WordsList;
>>> WordsList::where('Translation', 'english')->first();
=> App\WordsList {#2962
     ID: 4,
     Word: "اَلْإِنْكِلِيزِيَّة",
     SimpleWords: "الإنكليزية",
     Translation: "english",
     Views: null,
   }
>>> 

但是如果在AutoComplete Controller中像这样进行设置:

    public function search(Request $request) 
    {
          $search = $request->get('term');

          $result = WordsList::where('Translation', 'LIKE', '%'. $search. '%')->first();

          return response()->json($result);

    } 

Web文件(路由)

Route::get('autocomplete', 'AutoCompleteController@search');

如果发现此问题:

## (URL) http://127.0.0.1:8000/autocomplete/?term=english

SQLSTATE[HY000] [2002] Connection refused (SQL: select * from `WordsList` where `Translation` LIKE %english% limit 1)

2 个答案:

答案 0 :(得分:0)

我有几次发生这种情况。通常,查看您的.env文件很有帮助。

查看DB_HOST键。如果当前为127.0.0.1,请尝试将值更改为localhost

答案 1 :(得分:0)

您的数据库连接似乎有一个简单的问题。我不知道您的环境(无家可归的宅基地/虚拟mashine /等等)。

首先,您应该检查数据库配置。看看这些文章:

https://laracasts.com/discuss/channels/laravel/sqlstatehy000-2002-connection-refused#best-reply-117961

您的数据库主机应设置为 localhost ,而端口应为 3306

尝试使用php artisan config:cache清除并再次缓存您的配置。

至少您可以尝试调试代码并检查DB::connection() / DB::connection()->getDatabaseName()