这类似于这个问题,但我的情况有点不同。
我在 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 文件不包含正确的信息……但确实如此。这是我的 .env 用于 mysql 数据库:
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
它让我直接登录。
知道可能出了什么问题吗?
编辑您的
.env
文件,添加DATABASE_URL
if 它不存在并将其设置为以下内容:mysql
可以用任何其他驱动程序替换,具体取决于您使用的驱动程序。