连接被拒绝-Laravel,远程数据库

时间:2019-09-10 16:02:07

标签: mysql database laravel

在我的本地环境中,将数据插入数据库是可行的。但是,在我的远程服务器上,它不起作用。

我已经更改了远程.env和database.php文件,以便远程数据库和服务器可以正常工作。我可以通过mysqlworkbench连接到数据库,而不会出现任何问题。

但是我遇到以下错误:

  

例外:“ Illuminate \ Database \ QueryException”   文件:“ / var / www / html / go / releases / 1 / vendor / laravel / framework / src / Illuminate / Database / Connection.php”       线:664       消息:“ SQLSTATE [HY000] [2002]连接被拒绝(SQL:插入temp_usersenergydietcarshortFlights,{{1 }},longFlightsemailcountrytotalupdated_at)值(1.13、1.7、0.55、0、0,test51 @ mail.com ,荷兰,5.38,2019-09-10 15:27:41,2019-09-10 15:27:41))”       跟踪:[,…]

.env(将某些值替换为默认值,以保护隐私)。

created_at

database.php(重要部分)

APP_NAME=thename
APP_ENV=production
APP_KEY=the key
APP_DEBUG=true
APP_LOG_LEVEL=error
APP_URL=theurl

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=thedatabasename
DB_USERNAME=theusername
DB_PASSWORD=thepassword

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=localhost
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

数据库名称正确。该表存在,并且所有字段也都存在。预先感谢。

2 个答案:

答案 0 :(得分:0)

正如@PalakJadav正确指出的那样,应将远程 DB_HOST文件中的.env更改为远程数据库服务器的远程IP或主机名。还要与您的数据库服务提供商联系,以确保其他参数也正确。

.env文件进行更改后,通过安全外壳输入远程服务器。在远程服务器的根目录中,运行php artisan命令以重新加载laravel配置

 php artisan config:cache

清除旧的缓存配置

 php artisan config:clear

最后,清除应用程序缓存

 php artisan cache:clear

您现在可以重试mysql查询。

更新

还请记住在首次将应用程序置于在线状态时迁移表

php artisan migrate

答案 1 :(得分:0)

我面临的问题是我的mysql user没有正确的权限。

最后,我将其更改为使用root->登录到mysql,这就是我发现user上缺少权限的方式。

请确保将GRANT ALL ON laravel_database.* TO 'laravel_user'@'localhost';设置为登录用户。

拼写非常重要! ,因为我只有1个错字,这让我沮丧了好几天。