LINUX下MYSQL开启INNODB数据支持

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

相关文章
相关标签/搜索