1. ホーム
  2. php

[解決済み] ユーザー 'homestead'@'localhost' (パスワード: YES を使用) のアクセスが拒否されました。

2022-02-19 03:48:51

質問

Mac OS YosemiteでLaravel 5.0を使っています。

私の ローカル を実行すると php artisan migrate を取得し続ける。

ユーザー 'homestead'@'localhost' (使用パスワード:YES) のアクセスが拒否されました。

設定方法

以下は私の .env

APP_ENV=local
APP_DEBUG=true
APP_KEY=*****

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

appconfigdatabase.php

   'mysql'       => [
    'driver'      => 'mysql',
    'host'        => env('DB_HOST', 'localhost'),
    'database'    => env('DB_DATABASE', 'homestead'),
    'username'    => env('DB_USERNAME', 'homestead'),
    'password'    => env('DB_PASSWORD', 'secret'),
    'unix_socket' => '/tmp/mysql.sock',
    'charset'     => 'utf8',
    'collation'   => 'utf8_unicode_ci',
    'prefix'      => '',
    'strict'      => false,
    ]

どうすればこのようなエラーを回避できますか?

私は試しました。


1

app/database.php

交換 localhost127.0.0.1

'host'=> env('DB_HOST', 'localhost') --> 'host' => env('DB_HOST', '127.0.0.1')

また .env

DB_HOST=localhost --> DB_HOST=127.0.0.1


2

環境を指定してみる

php artisan migrate --env=local


3

実行することでMySQLが起動しているかどうかを確認します。

mysqladmin -u homestead -p status Enter password: secret

私は

Uptime: 21281 Threads: 3 Questions: 274 Slow queries: 0 Opens: 327 Flush tables: 1 Open tables: 80 Queries per second avg: 0.012

つまり、実行中ということです。


4

MySQL UNIX ソケットをチェックする ( 私はこのステップを実行しました。 )

解決方法は?

MySQL UNIX ソケットのチェック

探す unix_socket MySQLを使用したロケーション

mysql -u homestead -p

mysql> show variables like '%sock%';
+-----------------------------------------+-----------------------------+
| Variable_name                           | Value                       |
+-----------------------------------------+-----------------------------+
| performance_schema_max_socket_classes   | 10                          |
| performance_schema_max_socket_instances | 322                         |
| socket                                  | /var/run/mysqld/mysqld.sock |
+-----------------------------------------+-----------------------------+
3 rows in set (0.00 sec)

そして、私は config/database.php

私はこの行を更新します。 'unix_socket' => '/tmp/mysql.sock',

を : 'unix_socket' => '/var/run/mysqld/mysqld.sock',

これで終わりです。4回目の挑戦でうまくいきました。この手順が誰かの助けになることを願っています :D