MySQL-将MyISAM转为InnoDB,我需要注意哪些事?

需求定制 需求定制 主题:1050 回复:2283

MySQL-将MyISAM转为InnoDB,我需要注意哪些事?

泛泛之交 发布于 2017-10-06 字数 236 浏览 1135 回复 1

目前生产服环境为:

  • 20GMyISAM表一个,索引2G
  • 有一台Slave,拥有同样的20G表,同步频率5秒

目前打算在生产服务直接将此表转为InnoDB格式,就此环境而言我应该注意哪些事?
例如这是否会对Slave造成任何麻烦?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

想挽留 2017-10-21 1 楼

备份数据库后,shutdown停止数据库或者service mysql stop。
InnoDB 表不支持全文搜索,将备份出来的数据库sql,删掉有关 Fulltext 的索引。
cd /usr/local/mysql/support-files/ 找寻适合主机内存的设定文件,必将设定文件拷贝到 /etc/my.cnf。
vi /etc/my.cnf ,将以下几项批注取消掉。以 my-large.cnf 为例。
  

innodb_data_file_path = ibdata1:10M:autoextend
  innodb_buffer_pool_size = 256M
  innodb_additional_mem_pool_size = 20M
  innodb_log_file_size = 5M
  innodb_log_buffer_size = 8M
  innodb_flush_log_at_trx_commit = 1
  innodb_lock_wait_timeout = 50
加上 default-storage-engine=innodb

  加上这段之后,以后新增的数据表型态都即是 InnoDB,不然每次新增一次数据表,SQL 后面得加上 ENGINE=InnoDB;
备份出来的sql要将ENGINE=MyISAM改成ENGINE=InnoDB。
最后导入数据