> 数据库 > MySQL >

mysql innodb 安装,配置

drupal7正式发布了,下载了一下,安装时候提示我错误,安装不了

Syntax error or access violation: 1286 Unknown table engine 'InnoDB'

原来是我的mysql里面,根本没有innodb存储引擎。进去后我们可以用 show engines;或者show plugins;来查看

 

  1. mysql> show plugins;  
  2. +------------+--------+----------------+---------+---------+  
  3. | Name       | Status | Type           | Library | License |  
  4. +------------+--------+----------------+---------+---------+  
  5. | binlog     | ACTIVE | STORAGE ENGINE | NULL    | GPL     |  
  6. | CSV        | ACTIVE | STORAGE ENGINE | NULL    | GPL     |  
  7. | MEMORY     | ACTIVE | STORAGE ENGINE | NULL    | GPL     |  
  8. | MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL    | GPL     |  
  9. | MyISAM     | ACTIVE | STORAGE ENGINE | NULL    | GPL     |  
  10. +------------+--------+----------------+---------+---------+  
  11. 5 rows in set (0.00 sec)  

解决方法1(推荐使用):在configure的时候加上--with-plugins=innobase 如果要添多个插件,请用半角逗号隔开

如果何配置呢,其实将copy到/usr/local/mysql/my.cnf配置文件中[mysqld]下面有关innodb配置前面的#去掉就可以了。这是默认配置,可以根据个人需要进行修改

查看复制打印?
  1. # Uncomment the following if you are using InnoDB tables  
  2. innodb_data_home_dir = /usr/local/mysql/var/  
  3. innodb_data_file_path = ibdata1:10M:autoextend  
  4. innodb_log_group_home_dir = /usr/local/mysql/var/  
  5. # You can set .._buffer_pool_size up to 50 - 80 %  
  6. # of RAM but beware of setting memory usage too high  
  7. innodb_buffer_pool_size = 16M  
  8. innodb_additional_mem_pool_size = 2M  
  9. # Set .._log_file_size to 25 % of buffer pool size  
  10. innodb_log_file_size = 5M  
  11. innodb_log_buffer_size = 8M  
  12. innodb_flush_log_at_trx_commit = 1  
  13. innodb_lock_wait_timeout = 50  

解决方法2:

如果你安装的时候忘记了添加innodb,又不想重新编辑mysql来添加,这样也没有关系,innodb就是一个插件,安装好mysql后也是可以添加的。

1,查看一下,mysql配置是不是支持动态添加插件

查看复制打印?
  1. mysql> show variables like "have_%";  
  2. +----------------------+-------+  
  3. | Variable_name        | Value |  
  4. +----------------------+-------+  
  5. | have_compress        | YES   |  
  6. | have_crypt           | YES   |  
  7. | have_csv             | YES   |  
  8. | have_dynamic_loading | YES   |    //在这里是YES表示是支持的  

如果是no呢,就不太好办,因为have_dynamic_loading是只读变量,

mysql> set have_dynamic_loading=1;
ERROR 1238 (HY000): Variable 'have_dynamic_loading' is a read only variable

不过一般情况下都是YES,

2,添加插件

查看复制打印?
  1. mysql> INSTALL PLUGIN INNODB SONAME 'ha_innodb.so';    //提示打不开文件,没有权限  
  2. ERROR 1126 (HY000): Can't open shared library '/usr/local/mysql/lib/mysql/plugin/ha_innodb.so' (errno: 13 cannot restore segment prot after reloc: Permission denied)  

上面报没有权限错误,搞得我很郁闷,解决办法如下:

查看复制打印?
  1. root@ubuntu:/usr/local/mysql# find . -type d -print |grep -i plugin   //查看一下插件目录对不对  
  2. ./lib/mysql/plugin  
  3. root@ubuntu:/usr/local/mysql# chcon -t texrel_shlib_t /usr/local/mysql/lib/mysql/plugin/ha_innodb.so  
  4. chcon: 部分关联无法应用于文件“/usr/local/mysql/lib/mysql/plugin/ha_innodb.so”  

用chcon也报错,我查一下是因为我没有安装selinux

root@ubuntu:/usr/local/mysql# whereis selinux
selinux:

selinux我根本没有安装,如果个人用,这个也不需要,没办法装一下,装完后chcon就不报错了。

安装以下几个

查看复制打印?
  1. mysql> install plugin INNODB soname "ha_innodb.so";  
  2. mysql> install plugin INNODB_TRX soname "ha_innodb.so";  
  3. mysql> install plugin INNODB_LOCKS soname "ha_innodb.so";  
  4. mysql> install plugin INNODB_LOCK_WAITS soname "ha_innodb.so";  
  5. mysql> install plugin INNODB_CMP soname "ha_innodb.so";  
  6. mysql> install plugin INNODB_CMP_RESET soname "ha_innodb.so";  
  7. mysql> install plugin INNODB_CMPMEM soname "ha_innodb.so";  
  8. mysql> install plugin INNODB_CMPMEM_RESET soname "ha_innodb.so"  

安装好后,在用 show engines;或者show plugins;来查看

  1. mysql> show plugins;  
  2. +---------------------+--------+--------------------+---------+---------+  
  3. | Name                | Status | Type               | Library | License |  
  4. +---------------------+--------+--------------------+---------+---------+  
  5. | binlog              | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |  
  6. | CSV                 | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |  
  7. | MEMORY              | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |  
  8. | InnoDB              | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |  
  9. | INNODB_TRX          | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |  
  10. | INNODB_LOCKS        | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |  
  11. | INNODB_LOCK_WAITS   | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |  
  12. | INNODB_CMP          | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |  
  13. | INNODB_CMP_RESET    | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |  
  14. | INNODB_CMPMEM       | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |  
  15. | INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |  
  16. | MRG_MYISAM          | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |  
  17. | MyISAM              | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |  
  18. +---------------------+--------+--------------------+---------+---------+  
  19. 13 rows in set (0.00 sec)  

配置和方法一一样,第二种方法比较麻烦,不推荐使用。

(责任编辑:IT)