3 回答
TA贡献1842条经验 获得超21个赞
更新1
从Laravel 5.4开始,不再需要这些更改。
Laravel 5.4默认使用utf8mb4字符集,该字符集支持在数据库中存储“表情符号”。如果要从Laravel 5.3升级应用程序,则无需切换到此字符集。
更新2
当前默认情况下,当前生产的MariaDB版本不支持此设置。默认情况下,它在MariaDB 10.2.2+中实现。
解
并且,如果您有意要使用正确的Future-default(从Laravel 5.4开始)对的UTF8多字节utf8mb4支持,请开始修复?您的数据库配置。
在Laravel中config/database.php定义:
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
DYNAMIC允许存储长键索引。
服务器设置(默认情况下包含在MySQL 5.7.7 + / MariaDB 10.2.2+中):
[mysqld]
# default character set and collation
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
# utf8mb4 long key index
innodb_large_prefix = 1
innodb_file_format = barracuda
innodb_file_format_max = barracuda
innodb_file_per_table = 1
对于客户:
[mysql]
default-character-set=utf8mb4
然后停止您的MySQL / MariaDB服务器。在那之后开始。热重启可能不起作用。
sudo systemctl stop mysqld
sudo systemctl start mysqld
现在,您有了具有UTF8支持的Laravel5.x。
添加回答
举报