在我的本地环境中,将数据插入数据库是可行的。但是,在我的远程服务器上,它不起作用。
我已经更改了远程.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_users
(energy
,diet
,car
,shortFlights
,{{1 }},longFlights
,country
,total
,updated_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}"
数据库名称正确。该表存在,并且所有字段也都存在。预先感谢。
答案 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个错字,这让我沮丧了好几天。