第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Laravel遷移:即使指定,唯一密鑰也太長(zhǎng)

Laravel遷移:即使指定,唯一密鑰也太長(zhǎng)

呼如林 2019-11-05 15:11:57
我正在嘗試在Laravel中遷移用戶表。運(yùn)行遷移時(shí),出現(xiàn)以下錯(cuò)誤:[Illuminate \ Database \ QueryException] SQLSTATE [42000]:語(yǔ)法錯(cuò)誤或訪問(wèn)沖突:1071指定的密鑰太長(zhǎng);默認(rèn)值為0。最大密鑰長(zhǎng)度為767字節(jié)(SQL:alter table users添加唯一的users_email_uniq(email))我的遷移如下:Schema::create('users', function(Blueprint $table){    $table->increments('id');    $table->string('name', 32);    $table->string('username', 32);    $table->string('email', 320);    $table->string('password', 64);    $table->string('role', 32);    $table->string('confirmation_code');    $table->boolean('confirmed')->default(true);    $table->timestamps();    $table->unique('email', 'users_email_uniq');});經(jīng)過(guò)一番谷歌搜索后,我發(fā)現(xiàn)了這個(gè)錯(cuò)誤報(bào)告,泰勒說(shuō)您可以將索引鍵指定為的第二個(gè)參數(shù)unique(),這已經(jīng)完成了。它仍然給出錯(cuò)誤。這里發(fā)生了什么?
查看完整描述

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。


查看完整回答
反對(duì) 回復(fù) 2019-11-05
  • 3 回答
  • 0 關(guān)注
  • 824 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)