3 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊
更新1
從Laravel 5.4開(kāi)始,不再需要這些更改。
Laravel 5.4默認(rèn)使用utf8mb4字符集,該字符集支持在數(shù)據(jù)庫(kù)中存儲(chǔ)“表情符號(hào)”。如果要從Laravel 5.3升級(jí)應(yīng)用程序,則無(wú)需切換到此字符集。
更新2
當(dāng)前默認(rèn)情況下,當(dāng)前生產(chǎn)的MariaDB版本不支持此設(shè)置。默認(rèn)情況下,它在MariaDB 10.2.2+中實(shí)現(xiàn)。
解
并且,如果您有意要使用正確的Future-default(從Laravel 5.4開(kāi)始)對(duì)的UTF8多字節(jié)utf8mb4支持,請(qǐng)開(kāi)始修復(fù)?您的數(shù)據(jù)庫(kù)配置。
在Laravel中config/database.php定義:
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
DYNAMIC允許存儲(chǔ)長(zhǎng)鍵索引。
服務(wù)器設(shè)置(默認(rèn)情況下包含在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
對(duì)于客戶:
[mysql]
default-character-set=utf8mb4
然后停止您的MySQL / MariaDB服務(wù)器。在那之后開(kāi)始。熱重啟可能不起作用。
sudo systemctl stop mysqld
sudo systemctl start mysqld
現(xiàn)在,您有了具有UTF8支持的Laravel5.x。
添加回答
舉報(bào)