共享InnoDB / var / lib / mysql / ibdata1存储的问题
InnoDB表当前将数据和索引存储到共享表空间(/ var / lib / mysql / ibdata1)。由于共享表空间,一个InnoDB表的数据损坏可能导致MySQL无法在整个计算机上启动。修复InnoDB损坏可能非常难以执行,并且可能导致在修复过程中最初未损坏的表的数据丢失。

由于MySQL 5.5将使用InnoDB作为默认存储引擎,因此考虑继续利用/ var / lib / mysql / ibdata1中的共享表空间的后果非常重要。

使用innodb_file_per_table更改为每表表空间

作为解决问题的选项,MySQL有一个名为innodb_file per_table的配置变量。要使用此变量,可以将以下内容放入/etc/my.cnf,以将InnoDB转换为每个InnoDB引擎表的每个表文件:

码:
innodb_file_per_table = 1

添加该行后,需要在机器上重新启动MySQL。

在/etc/my.cnf中使用该行的结果将导致在添加行之后的任何数据库在/ var / lib / mysql / database / location中创建.idb文件。请注意,共享表空间仍将保留内部数据字典和撤消日志。

转换旧的InnoDB表

任何设置为先前在ibdata1中共享表空间的InnoDB表的旧数据库仍将使用该文件,因此需要将这些旧数据库切换到新系统。MySQL CLI中的以下命令将创建InnoDB引擎表的列表以及为每个引擎运行的命令,以将它们转换为新的innodb_file_per_table系统:

代码:
select concat('alter table ',TABLE_SCHEMA ,'.',table_name,' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.tables where table_type='BASE TABLE' and engine = 'InnoDB';

我的测试计算机上的Roundcube示例在运行previous命令时显示以下返回值:

码:
alter table roundcube.cache ENGINE = InnoDB;
alter table roundcube.contacts ENGINE = InnoDB;
alter table roundcube.identities ENGINE = InnoDB;
alter table roundcube.messages ENGINE = InnoDB;
alter table roundcube.session ENGINE = InnoDB;
alter table roundcube.users ENGINE = InnoDB;

然后,您只需发出MySQL CLI指出的命令,然后将每个表转换为新的innodb_file_per_table格式。

请注意,这些命令只需要在MySQL命令行中进行转换,可以通过在bash提示符下输入mysql在root SSH中访问。

转换旧InnoDB表的可能问题

1.转换期间可能发生系统负载
2.驱动器空间填满转换的可能问题

innodb_file_per_table - 转换为InnoDB的更多相关文章

  1. MySQL MyISAM引擎转换为InnoDB操作记录

    进入mysql命令行模式: # mysql -uroot -ppwd 1.查看mysql提供什么存储引擎: mysql> show engines; 2.查看mysql当前提供的默认存储引擎: ...

  2. [MySQL Reference Manual]14 InnoDB存储引擎

    14 InnoDB存储引擎 14 InnoDB存储引擎 14.1 InnoDB说明 14.1.1 InnoDB作为默认存储引擎 14.1.1.1 存储引擎的趋势 14.1.1.2 InnoDB变成默认 ...

  3. mysql innodb存储引擎介绍

    innodb存储引擎1.存储:数据目录.有配置参数为“ innodb_data_home_dir ” .“ innodb_data_file_path ” 和 “innodb_log_group_ho ...

  4. MySQL 参数- Innodb_File_Per_Table(独立表空间)

    Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间.共享表空间以及独立表空间都是针对数据的存储方式而言的. 共享表空间某一个数据库的所有 ...

  5. MySQL InnoDB 备份与恢复七种方式

    有几种方式: 1 mysqldump, 这种方式不仅适用于InnoDB,还适用于其它类型的存储引擎,如MyISAM.备份的时候将数据库备份成SQL(包含drop,create,insert等语句),恢 ...

  6. MySQL Server参数优化 - innodb_file_per_table(独立表空间)

    1 简介    Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间.    共享表空间以及独立表空间都是针对数据的存储方式而言的.    ...

  7. innodb的innodb_buffer_pool_size和MyISAM的key_buffer_size(转自:http://www.java123.net/898181.html)

    一. key_buffer_size 对MyISAM表来说非常重要. 如果只是使用MyISAM表,可以把它设置为可用内存的 -%.合理的值取决于索引大小.数据量以及负载 -- 记住,MyISAM表会使 ...

  8. MySQL-5.7设置InnoDB表数据文件存储位置

    1.表空间 Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间. 共享表空间以及独立表空间都是针对数据的存储方式而言的. 共享表空间: ...

  9. MySQL 5.6 Reference Manual-14.6 InnoDB Table Management

    14.6 InnoDB Table Management 14.6.1 Creating InnoDB Tables 14.6.2 Moving or Copying InnoDB Tables to ...

随机推荐

  1. 简单的字母全排列问题—递归法和STL法

    问题描述:求全由小写字母组成的不超过200个字符序列的全排列 如输入序列bbjd,排列结果为: bbdj bbjd bdbj bdjb bjbd bjdb dbbj dbjb djbb jbbd jb ...

  2. scala-03-list操作

    列表 Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表 具有递归的结构(也就是链接表结构)而数组不是.. 1, 创建 lis ...

  3. 卸载或重新安装Redis集群

    卸载或重新安装Redis集群 1.如果需要修改端口号,则需要将原来的Redis各节点的服务器卸载,并重新安装, 卸载服务命令如下: D:/Redis/redis-server.exe --servic ...

  4. mac 安装 python mysqlclient 遇到的问题及解决方法

    在 mac 上安装 mysqlclient 遇到了一些问题,查找资料很多人都遇到了同样的问题.通过资料和试验,成功了.这里记录一下,希望帮到遇到同样问题的人. 本人使用python3, 安装步骤如下: ...

  5. org.hibernate.NonUniqueObjectException:a different object with the same identifier value was alread

    转自: http://blog.csdn.net/zzzz3621/article/details/9776539 看异常提示意思已经很明显了,是说主键不唯一,在事务的最后执行SQL时,session ...

  6. Spark2.1.0——深入浅出度量系统

    Spark2.1.0--深入浅出度量系统 对于一个系统而言,首先考虑要满足一些业务场景,并实现功能.随着系统功能越来越多,代码量级越来越高,系统的可维护性.可测试性.性能都会成为新的挑战,这时监控功能 ...

  7. zoj 2818 Root of the Problem(数学思维题)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2818 题目描述: Given positive integer ...

  8. vs2017调试浏览器闪退

    工具>选项>项目和解决方案> Web项目",取消选中"浏览器窗口关闭时停止调试器"

  9. log4j2配置文件log4j2.xml详解(转载)

    此博文转载自阿豪聊干货:https://www.cnblogs.com/hafiz/p/6170702.html 一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2. ...

  10. 将ABP的数据库从SQLSERVER迁移到MySql

    摘要:之前跟着网上的一些教程,学习了一点ABP的知识.最近想说把默认的SQLSERVER数据迁移到mysql吧 首先网上搜一波 安装MySql.Data.Entity 然后你需要安装 MySql.Da ...