it-swarm-ja.com

PHPアーティザンマイグレーションがmysqlデータベースにアクセスできない

これは この質問 に似ていますが、私の状況は少し異なります。

Ubuntu 18.04でlaravel、composer、valetを実行しています。 php artisan migrateを実行しようとしていますが、mysqlデータベースに接続できないことに関連するエラーがスローされます。

 Illuminate\Database\QueryException  : SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' (SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations)

at /home/david/Sites/blog/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
  660|         // If an exception occurs when attempting to run a query, we'll format the error
  661|         // message to include the bindings with SQL, which will make this exception a
  662|         // lot more helpful to the developer instead of just the database's errors.
  663|         catch (Exception $e) {
> 664|             throw new QueryException(
  665|                 $query, $this->prepareBindings($bindings), $e
  666|             );
  667|         }
  668| 

Exception trace:

1   PDOException::("SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'")
    /home/david/Sites/blog/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68

2   PDO::__construct("mysql:Host=127.0.0.1;port=3306;dbname=blog", "root", "", [])
    /home/david/Sites/blog/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68

.envファイルに適切な情報が含まれていないことは明らかですが、実際には含まれています。 mysqlデータベースの.envは次のとおりです。

DB_CONNECTION=mysql
DB_Host=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=

入力しようとしているデータベースはブログと呼ばれ、ユーザー名はroot、パスワードは空白です。それが私のマシンでmysqlにアクセスする方法です... Sudo mysql -uroot -pそしてそれは私を正しくログインさせます。

何が間違っているのでしょうか?

1
qotsa42

.envファイルを編集します(まだない場合はDATABASE_URLを追加し、次のように設定します)。

DATABASE_URL=mysql://user:[email protected]/dbname

mysqlは、使用するドライバーに応じて他のドライバーに置き換えることができます。

2
seeJ