13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

laravel 初めてデータベースを接続する際のエラー解決

Last updated at Posted at 2020-11-28

#はじめに
今回はUdemyにて学習した際に発生したエラーになります。その解決方法を投稿したいと思います。

#初学者の方へ
初めてphpMyAdminとlaravelがデータベースに接続する際にどの様にエラーを突破したかを書いていますので是非参考にしてみて下さい。

今回のエラー文は下記になります。スクショも載せます。

`SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known (SQL: select * from information_schema.tables where table_schema = laravel_task and table_name = migrations and table_type = 'BASE TABLE')`

2020-11-25_12-34-39-47c2c1db8e1dbed6e5db458f9a1dcb3e.png

#エラー文の解説
データベースに接続する際、拒否されています。
つまりlaravelの.envにてはポート番号 password データベースの名前が間違っている可能性が高いとなります。

#.env ポート番号 phpMyadmin を確認しよう

.env.php
//laravelの .envになります。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_task
DB_USERNAME=laravel_user //phpMyadminの特権にusernameがあります。
DB_PASSWORD=hosthost

2020-11-25_12-51-33-0e26f83ec25a51da85872d4b77c8f59b.png
e7e7520802da32fab0aae676b6e86f1d.png

#エラー解決
DB_HOSTを確認すると`phpMyadminでは[%] .envでは[127.0.0.1]
これがエラーの原因となります。こちらを下記に書き換えます。

.env.php
//laravelの .envになります。
DB_CONNECTION=mysql
DB_HOST=localhost  //ここを書き換えて下さい
DB_PORT=3306
DB_DATABASE=laravel_task
DB_USERNAME=laravel_user //phpMyadminの特権にusernameがあります。
DB_PASSWORD=hosthost

また、念のためですがdatabase.phpも下記に書き換えます。

database.php
// 54行目を書き換えます
'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock', 
        //'unix_socketを上記のように書き換え
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

また、ターミナルで下記を実行して下さい。

//ターミナルにて
php artisan cache:clear
php artisan config:cache

最後にphp artisan migrateを実行すると下記のスクショの様に解決できます。
“スクリーンショット” 2020-11-28 13.17.21.jpg

#最後に
如何でしょうか?無事に解決できましたか?
もし、おかしいところがあれば是非突っ込んで欲しいです。

13
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?