Php artisan migration 无法访问 mysql 数据库

Php artisan migration 无法访问 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=

我尝试进入的数据库名为 blog,用户名是 root,密码为空。这就是我在机器上访问 mysql 的方式……sudo mysql -uroot -p它直接让我登录。

知道可能出了什么问题吗?

答案1

编辑您的.envDATABASE_URL文件,如果尚不存在,请添加它并将其设置为以下内容:

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

mysql可以根据您所使用的任何其他驱动程序进行替换。

相关内容