1. 程式人生 > >mysql specified key was too long與Index column size too large. The maximum column size is 767 bytes.

mysql specified key was too long與Index column size too large. The maximum column size is 767 bytes.

第一個問題:要設定utf-8就好;

Index column size too large. The maximum column size is 767 bytes.

第一步:use 進入資料庫

執行:

set global innodb_file_format = BARRACUDA;

set global innodb_large_prefix = ON;

第二步:執行

CREATE TABLE `app_item_rank_increment_hour` (
  `at` varchar(20) NOT NULL,
  `appv` varchar(20) NOT NULL,
  `channel` varchar(20) NOT NULL,
  `item_id` varchar(50) NOT NULL,
  `rise` int(11) DEFAULT NULL,
  `current_rank` int(11) DEFAULT NULL,
  `day` int(10) NOT NULL,
  `hour` int(10) NOT NULL,
  `item_url` varchar(300) NOT NULL,
  `item_title` varchar(150) NOT NULL,
  PRIMARY KEY (`at`,`appv`,`channel`,`item_id`,`day`,`hour`,`item_title`,`item_url`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

標紅為修改部分;

注意:使用圖片中的方式在載入,會影響後面的表加入,如果不想影響可以進入mysql

使用source 命令載入,執行影響整一個表,不會影響後面的表

但一樣不建議是用這種方式,這個引數會改了儲存引擎的格式型別

最好檢查mysql版本,使用相同版本則不會出現問題,

我是用的是5.6的版本,原sql使用的5.7的班版本,後面發現只要使用5.7以上的版本就不會出現這個問題