将laravel部署到heroku

时间:2019-11-11 04:20:14

标签: laravel laravel-5 heroku

我正在尝试将laravel应用程序部署到heroku,但返回错误 SQLSTATE [22023]:参数值无效:7错误:参数“ client_encoding”的值无效:“ utf8mb4”(SQL:从“表名”中选择*)。我将表名排序规则和列从utf8mb4_unicode_ci更改为utf8unicode_ci,但没有任何反应。请帮我。我尝试了所有可能的解决方案,但没有任何反应。

7 个答案:

答案 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)

对于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',
        '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”