91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysq5.7.28配置innodb_page_size錯誤引起ERROR 1071 (42000)該怎么辦

發布時間:2021-10-08 17:18:25 來源:億速云 閱讀:106 作者:柒染 欄目:MySQL數據庫

mysq5.7.28配置innodb_page_size錯誤引起ERROR 1071 (42000)該怎么辦,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

  1. 幫客戶部署一套mysql并導入數據時出現ERROR 1071 (42000): Specified key was too long; max key length is 1536 bytes錯誤;

  2. 環境:數據庫版本:mysql5.7.28

              操作系統:centos6.8

  3. CREATE TABLE `QRTZ_BLOB_TRIGGERS`  (
        ->   `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
        ->   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
        ->   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
        ->   `BLOB_DATA` blob NULL,
        ->   PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
        ->   CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
        -> ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'InnoDB free: 504832 kB; (`SCHED_NAME` `TRIGGER_NAME` `TRIGGE' ROW_FORMAT = Dynamic;
    ERROR 1071 (42000): Specified key was too long; max key length is 1536 bytes

   4.查詢官方文檔該錯誤是由系統變量innodb_large_prefix(默認啟用,注意實驗版本為MySQL 5.6.41,默認是關閉的,

MySQL 5.7默認開啟),則對于使用DYNAMIC或COMPRESSED行格式的InnoDB表,索引鍵前綴限制為3072字節。如果禁用

innodb_large_prefix,則對于任何行格式的表,索引鍵前綴限制為767字節。

nnodb_large_prefix將在以后的版本中刪除、棄用。在MySQL 5.5中引入了innodb_large_prefix,用來禁用大型前綴索引,

以便與不支持大索引鍵前綴的早期版本的InnoDB兼容。

對于使用REDUNDANT或COMPACT行格式的InnoDB表,索引鍵前綴長度限制為767字節。例如,您可能會在TEXT或VARCHAR列上使

用超過255個字符的列前綴索引達到此限制,假設為utf8mb3字符集,并且每個字符最多包含3個字節。

嘗試使用超出限制的索引鍵前綴長度會返回錯誤。要避免復制配置中出現此類錯誤,請避免在主服務器上啟用

enableinnodb_large_prefix(如果無法在從服務器上啟用)。

適用于索引鍵前綴的限制也適用于全列索引鍵。

注意:上面是767個字節,而不是字符,具體到字符數量,這就跟字符集有關。GBK是雙字節的,UTF-8是三字節的

5.官方提供解決方案:

1: 系統變量innodb_large_prefix為ON 2: 系統變量innodb_file_format為Barracuda 3: ROW_FORMAT為DYNAMIC或COMPRESSED

6.經測試改變上述三個參數依然無法解決報錯問題,但是嘗試默認安裝的無配置文件部署mysql是可以正常創建,判斷是由

配置文件引起的無法創建表問題,經過測試發現配置文件中innodb_page_size參數配置大小為8192,而默認配置 大小

是16384,調整該參數至16384問題解決。

7.上述創建語句中外鍵索引所需字節大小為(120+200+200)*3=1560,但是為何page頁改為16k就沒問題 ,沒有找到直觀的證據,暫未可知(推測應該是頁大小和索引行長度的關系,16k的頁對應3072,8k的頁對應1536)

看完上述內容,你們掌握mysq5.7.28配置innodb_page_size錯誤引起ERROR 1071 (42000)該怎么辦的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛纳斯县| 宣城市| 马龙县| 昌邑市| 福海县| 绥阳县| 扶绥县| 昌图县| 区。| 吉安市| 东光县| 册亨县| 芜湖市| 基隆市| 息烽县| 高邮市| 荃湾区| 明光市| 陇川县| 甘德县| 南靖县| 邹城市| 石棉县| 略阳县| 高邑县| 冀州市| 壶关县| 高阳县| 肃北| 黔江区| 钟祥市| 北碚区| 旌德县| 东宁县| 抚顺市| 聂拉木县| 治县。| 江西省| 玉树县| 太康县| 马边|