我正在尝试将laravel应用程序部署到heroku,但返回错误 SQLSTATE [22023]:参数值无效:7错误:参数“ client_encoding”的值无效:“ utf8mb4”(SQL:从“表名”中选择*)。我将表名排序规则和列从utf8mb4_unicode_ci更改为utf8unicode_ci,但没有任何反应。请帮我。我尝试了所有可能的解决方案,但没有任何反应。
qwerrewqqwerrewq 回答:将laravel部署到heroku
Laravel 数据库连接环境问题
您可能使用 Postgresql 作为数据库而不是 MySql。
然后请在config/database.php
文件
'default' => env('DB_CONNECTION','pgsql')
或将 .env 中的 DB_CONNECTION 设置为 pgsql
pgsql 不支持 utf8mb4,它是针对 MySQL 的,如果你使用 Postgresql 请纠正连接环境。
,按照config / database.php上的指定设置psql详细信息之后 跑 git push origin master git push heroku master
然后尝试再次运行bash。
heroku运行bash PHP的工匠迁移:新鲜 是 而且你很好走
,您在使用laravel / telescope吗?
尝试实施我的项目时,我遇到了同样的问题。为了解决该错误,我从项目中删除了laravel / telescope。
'mysql' => [
// ...
'charset' => 'utf8','collation' => 'utf8_general_ci',// ...
],
,
我遇到了同样的问题。错误地我没有在 Heroku 仪表板上的配置变量中添加 DB_CONNECTION=pgsql
。 在设置标签内点击显示配置变量并在那里添加DB_CONNECTION=pgsql
。
另一种方法只是简单地使用终端添加 config vars。
heroku condig:add DB_CONNECTION=pgsql
,
对于mysql:
[
'database.connections.rds' => [
'driver' => 'mysql','host' => $endpoint,'port' => $port,'database' => $db_name,'username' => $user,'password' => $password,'unix_socket' => env('DB_SOCKET',''),'charset' => 'utf8mb4','collation' => 'utf8mb4_unicode_ci','prefix' => '','strict' => true,'engine' => null,]
]
对于 Postgres
[
'database.connections.rds' => [
'driver' => 'pgsql','charset' => 'utf8',]
]
,
在config / database.php中,使用默认连接 '默认'=>'pgsql', “ client_encoding”:“ utf8”
如果使用MySQL,则将默认连接更改为 '默认'=>'mysql', “ client_encoding”:“ utf8mb4”