1.問題描述:mysql
在執行linux
create table goodsAndProps ( goodsId varchar(128) not null, propsId varchar(128) not null, propsValue varchar(128) not null, primary key (goodsId, propsId, propsValue) );
時候發生的,三個字段作主鍵佔用的長度已經超出了1000的限制((200 + 200 +200) * 2 = 1200 > 1000),若是是兩個字段作主鍵就不會有問題。sql
2.解決方案:shell
須要使用INNODB,新一點的mysql版本都是支持INNODB數據引擎的,不須要特別的開啓。特別是在5.5版本之後,默認就是InnoDB。這裏發生問題就是咱們的mysql版本有點老了,是5.1.47的版本,socket
[root@localhost etc]# mysql --version mysql Ver 14.14 Distrib 5.1.47, for redhat-linux-gnu (x86_64) using readline 5.1
所以須要在 /etc/my.cnf 文件中的 [mysqld] 下面加入default-storage-engine=INNODB 一句,保存。spa
修改完畢的my.cnf以下(其實就是增長了default-storage-engine=INNODB這一行),
code
[root@localhost etc]# cat my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql default-storage-engine=INNODB # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
重啓mysql便可,再也不會出現描述的問題。it