質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.57%

php laravel DB migrate時のエラーについて

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,112

yuyasato0220

score 13

 前提・実現したいこと

当方初学者になります。宜しくお願い致します。

UdemyのLaravel 入門コースにおいて
migrate 時にエラーが発生し、調べても調べても解決しないため
質問させていただきます。宜しくお願い致します。

■■な機能を実装中に以下のエラーメッセージが発生しました。

 発生している問題・エラーメッセージ

エラーメッセージ


[PDOException]                             
SQLSTATE[HY000] [2002] Connection refused  

(ターミナル上)

 該当のソースコード

tarminal上
$ php artisan migrate

以下 database.php より該当箇所を抜粋

'default' => env('DB_CONNECTION', 'sqlite'),

/*
|--------------------------------------------------------------------------
| Database Connections
|--------------------------------------------------------------------------
|
| Here are each of the database connections setup for your application.
| Of course, examples of configuring each database platform that is
| supported by Laravel is shown below to make development simple.
|
|
| All database work in Laravel is done through the PHP PDO facilities
| so make sure you have the driver for your particular database of
| choice installed on your machine before you begin development.
|
*/

'connections' => [

'sqlite' => [
'driver' => 'sqlite',
'database' => database_path('database.sqlite'),
'prefix' => '',
],

'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],

ソースコード

 試したこと

MySQLではなく、sqlite使用のため、デフォルトのmysqlからsqliteに変更
'default' => env('DB_CONNECTION', 'sqlite'),

env()の様にしたりと、色々試しましたがうまく動作しなかったため、ほぼデフォルトに戻してあります。

 補足情報(FW/ツールのバージョンなど)

laravel 5.2 (udemyからの指示)
PHP 7.1
sqlite3
環境はローカルです。

今日中に終わらせなくてはいけないため、恐縮ではありますが、こちらで質問させて頂きました。
宜しくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

まずはsqliteはインストールされているでしょうか?
ターミナルで
sqlite3
と打って、コマンドがnot foundになっていればインストールからです。

あと
database.phpの内容だけでなく、
.envファイルの
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
という部分を
DB_CONNECTION=sqlite
DB_DATABASE=database.sqlite
(上記2行以外は消してもコメントにしても構いません)
にする必要がありますが、それはやりましたか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/25 13:51

    回答ありがとうございます!
    sqlite3はインストールされております。
    .envファイルなのですが、自分も何でないんだろうと思ってたのですが、おそらくlaravel5.2だとないのかな・・・と思ったのですが、どうでしょうか・・・
    routeフォルダ自体がありません・・・。
    .envがないため、 DB_CONNECTION=sqlite など、database.phpに記述しようとしたのですが、その文章通りの記述をしようとするとエラーになってしまうため、行っておりません。
    現状、教材に合わせたlaravelをインストールしてやっていたのですが、
    大人しくlaravel5.5以降で再度やり直した方が良さそうでしょうか。。

    宜しくお願い致します・・・・。

    キャンセル

  • 2018/11/25 15:26

    .env ファイルは環境によって最初無い場合があります。よくあるのが別の環境のリポジトリ等からコピーしてきてる場合等で、通常は .gitignore というリポジトリから除外する設定のファイル状態になっているのでリポジトリに反映されません。
    ただ、 .env.example というファイルは存在していると思うので、そのファイルを .env という名前でコピーして中に正しい設定の値を入れると良いかと思います。
    route フォルダは正確には routes フォルダでしょうか?それが無いのはちょっとわからないですね。なんともいえませんが、もしかしたら完全な環境ではないかもしれません。5.5の環境を最初からインストールするというのも手でしょうし、バージョン指定をして再度インストールするのも良いかと思います。

    laravelでバージョンを指定してインストール
    https://qiita.com/kkkkk/items/f90fa5a7d4352d0bbc3f

    キャンセル

  • 2018/11/26 01:38

    回答ありがとうございました。
    Laravel 5.5をインストールしなおしたら、migrateに成功し、そのまま進めることが出来ました。
    ありがとうございます。
    問題はmampのmysql上で動かないというかviewがうまくcssなどに対応していなかったりしましたが、php artisan serveでは問題なく動いたので、また別の機会に色々試してみます。
    本当にありがとうございます。
    terateil初めて使うため、ベストアンサーにするというボタンがお一人にしか見当たらないため、最初に回答頂いた方にさせて頂きますが、
    お二人ともにとても感謝しております。
    ありがとうございました。また宜しくお願い致します。

    キャンセル

  • 2018/11/26 01:47

    無事解決したようで良かったです!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.57%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る