php - Laravel - 迁移工作但发布请求抛出“用户'root'@'localhost'的访问被拒绝”
问题描述
我正在尝试将项目投入生产。向 Laravel API 运行 Axios 发布请求时出现访问错误。(我在本地机器上没有收到此错误)
[2019-01-28 12:18:04] local.ERROR: SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' (SQL: select * from `oauth_clients` where `id` = 2 limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 1698): SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' (SQL: select * from `oauth_clients` where `id` = 2 limit 1) at /var/www/html/RemApp/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664, PDOException(code: 1698): SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' at /var/www/html/RemApp/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68)
运行迁移时我没有收到错误。下面是我的 .env 文件。(我没有更改 config/database.php)
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=AppName
DB_USERNAME=root
DB_PASSWORD=mypasswordhere
尝试清除缓存:
php artisan cache:clear php artisan config:clear
从 DB_PASSWORD 中删除了引号
- 凭据是正确的。(可以使用 mysql -u -p 登录和运行查询)
解决方案
原来这与:SQLSTATE[HY000] [1698] 用户'root'@'localhost'的访问被拒绝。尝试了一切
由于某种原因,不能使用 mysql root 用户。要解决此问题,您需要创建一个新用户。以下是创建新用户和授予 root 权限的命令。
mysql -u root -p
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
exit
service mysql restart
现在编辑您的 .env 以匹配新的用户凭据。为了安全起见,您可以重新启动服务器。
推荐阅读
- javascript - 我想在单击活动的某些 javascript 时使用按钮?
- ray - resnet示例的梯度同步问题
- javascript - 包含脚本
- python - CreateView 在提交时不保存,但在 UpdateView 上
- flutter - ScanStreamTransformer 上的 NULL 累加器
- javascript - JavaScript / Mocha - 如何测试是否等待函数调用
- java - 使用 with* 函数、TemporalAdjusters 或设置 TemporalFields 调整 ZonedDateTimes 之间有什么区别吗?
- php - 在 docker-compose 中使用 PhpStorm/Idea 和 Symfony 进行 Xdebug:仅在第一个文件 index_dev.php 处中断
- r - r 包文档中的方程式不起作用
- php - PHP 在 JS 中改变值