如何解决我的数据库迁移中的排序规则错误?

Posted

技术标签:

【中文标题】如何解决我的数据库迁移中的排序规则错误?【英文标题】:How can I resolve a collation error in my DB migration? 【发布时间】:2022-01-22 18:43:58 【问题描述】:

我正在尝试将我的数据库从本地主机迁移到 cleardb。将我的数据库导入 cleardb 后,我收到错误 Unknown collat​​ion: 'utf8mb4_0900_ai_ci'。我不知道排序规则是什么,我也无法在网上找到任何关于排序规则的 cleardb 接受的内容。我猜它与正在提交的字符集有关。

关于如何解决这个问题,我有什么选择?

谢谢

【问题讨论】:

mysql 数组的 config/database.php 中设置 charset="utf8" 和 collat​​ion="utf8_general_ci" 非常感谢,您想将此设置为答案,以便我可以勾选它吗? 【参考方案1】:

对于排序错误,您需要按照以下步骤进行操作

1、进入config/database.php文件 2、设置charset="utf8"和collat​​ion="utf8_general_ci"

最终的 MySQL 数组如下所示

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_general_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

【讨论】:

以上是关于如何解决我的数据库迁移中的排序规则错误?的主要内容,如果未能解决你的问题,请参考以下文章

使用 pg_dump 将 Postgres 从 Windows 迁移到 Linux 时如何选择正确的排序规则来创建数据库?

如何解决 Heroku 上托管的 django 项目中的迁移问题?

MySQL错误未知排序规则

如何进行核心数据迁移?

如何加快核心数据迁移或其他解决方案

Laravel 5.4数据库迁移不起作用[重复]