我在Homestead用Laravel 5.3编写代码,一切都很好。 当我将代码上传到生产服务器并创建新的数据库用户名时,
并且GRANT
grant all on drns.* to drns@localhost identified by 'drns****';
将.env更改为
APP_ENV=production
APP_KEY=base64:695XOiuHsxXXXXXXXXXXXLOX9gBE74=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://myip/
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=drns
DB_USERNAME=drns
DB_PASSWORD=drns****
运行工匠php artisan route:cache && php artisan config:cache && php artisan view:clear
然后我测试我的网站,控制器中的每个功能[创建/更新]它通常工作, 但是在Document controler上的函数更新中说出了关于宅基地用户名的错误
QueryException in Connection.php line 770:
SQLSTATE[HY000]: General error: 1449 The user specified as a definer ('homestead'@'%') does not exist
(SQL: update `documents` set `revision` = `revision` + 1, `number` = 0001.13 / 1, `title` = test, `urgency` = normal, `updated_at` = 2017-04-20 02:41:54 where `id` = 68)
我的代码
public function update(DocumentRequest $request, $id)
{
$document = Document::findOrFail($id);
if ($document->increment('revision', 1, [
'number' => $request->get('number'),
'title' => $request->get('title'),
'urgency' => $request->get('urgency')]))
{
return redirect()->route('document.show', $id);
}
return redirect()->back()->with('error', 'Can't update!');
}
更新功能中的另一个控制器就像这些,但它没有任何错误。
请建议我。
答案 0 :(得分:1)
我在数据库[homestead]中创建触发器并将数据库转储到服务器,定义器为homestead@%
它没有更改。因此,我将definer更改为数据库服务器上的用户名,然后正常工作。