【发布时间】:2021-11-28 19:29:25
【问题描述】:
我正在尝试访问我的 Laravel 应用程序上的数据库(存在于不同的服务器上)。我不断收到以下错误:SQLSTATE[HY000] [2002] Permission denied
我的.env文件设置如下(为了保护隐私做了一点改动):
DB_CONNECTION=mysql
DB_HOST= IP_ADDRESS
DB_PORT=3306
DB_DATABASE=DB_NAME
DB_USERNAME="laravel_user"
DB_PASSWORD="password"
我不确定这是否重要,但如果我转到链接 IP.ADDRESS/phpmyadmin
,我可以访问 Web 服务器的数据库我的web.php文件如下:
Route::get('/test', function(){
return DB::select("select * from umts_list");
});
此外,我还访问了 IP_ADDRESS/phpmyadmin(我的数据库所在的位置)并添加了一个名为 laravel_user 的新用户,该用户能够选择所有数据并将其保存为“密码”作为其密码。
我的尝试:我尝试了上面提到的所有内容,并且还清除了缓存,因为我通过输入以下命令对 .env 文件进行了更改:
php artisan config: clear
php artisan cache: clear
任何帮助将不胜感激。谢谢。
编辑 1:在 phpMyAdmin 上,我确保添加用户,如下图所示: PhpMyAdmin User Account
此外,我还检查了 phpMyadmin 上的端口号,它是 3306,如下图所示: Port Number
【问题讨论】:
-
确保您的 IP_ADDRESS 之前没有空格,并且您尝试连接的 MySQL 用户具有从远程主机连接的适当权限
-
"...IP_ADDRESS/phpmyadmin(我的数据库所在的位置)..." 这不是您的数据库所在的位置,phpMyAdmin 是“仅”一个连接到你的 MySQL 服务器
-
@brombeer 感谢您的回复。我确实删除了空间,我看到了。 IP_ADDRESS 指向一个 Web 应用程序,并且数据库存在于该服务器上。我认为只使用 IP_ADDRESS 就足够了,但我想不是。我在哪里可以找到路径,然后这是否意味着我在 .env 文件中将该路径添加到 DB_HOST?
-
您只需使用 IP 地址和端口(使用正确的凭据)进行连接
-
@brombeer 是的,我最初确实只有 DB_HOST 中的 IP.ADDRESS,但错误消息没有改变。
标签: php laravel database connection laravel-7