Laravel 11连接MySQL报错:未知排序规则utf8mb4_0900_ai_ci
解决Laravel 11连接MySQL时“Unknown collation: 'utf8mb4_0900_ai_ci'”错误
错误原因
utf8mb4_0900_ai_ci是MySQL 8.0及以上版本才支持的排序规则,你的MySQL版本低于8.0,而Laravel 11默认使用该排序规则,导致版本不兼容报错。
解决方法
方法1:修改数据库配置
- 通过.env文件修改:在项目根目录的
.env文件中添加或更新以下配置:DB_COLLATION=utf8mb4_unicode_ci - 通过config/database.php修改:打开
config/database.php,找到mysql配置数组,将collation值改为兼容低版本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' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_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'), ]) : [], ],
方法2:升级MySQL版本
将MySQL升级到8.0及以上版本,原生支持utf8mb4_0900_ai_ci排序规则,无需修改配置即可解决问题。
注意事项
修改配置后,执行以下命令清除配置缓存,确保新配置生效:
php artisan config:clear
内容的提问来源于stack exchange,提问作者Sandeep Pal
相关产品推荐
相关产品推荐

