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