innodb_file_per_table - 转换为InnoDB
共享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的更多相关文章
- MySQL MyISAM引擎转换为InnoDB操作记录
进入mysql命令行模式: # mysql -uroot -ppwd 1.查看mysql提供什么存储引擎: mysql> show engines; 2.查看mysql当前提供的默认存储引擎: ...
- [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变成默认 ...
- mysql innodb存储引擎介绍
innodb存储引擎1.存储:数据目录.有配置参数为“ innodb_data_home_dir ” .“ innodb_data_file_path ” 和 “innodb_log_group_ho ...
- MySQL 参数- Innodb_File_Per_Table(独立表空间)
Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间.共享表空间以及独立表空间都是针对数据的存储方式而言的. 共享表空间某一个数据库的所有 ...
- MySQL InnoDB 备份与恢复七种方式
有几种方式: 1 mysqldump, 这种方式不仅适用于InnoDB,还适用于其它类型的存储引擎,如MyISAM.备份的时候将数据库备份成SQL(包含drop,create,insert等语句),恢 ...
- MySQL Server参数优化 - innodb_file_per_table(独立表空间)
1 简介 Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间. 共享表空间以及独立表空间都是针对数据的存储方式而言的. ...
- innodb的innodb_buffer_pool_size和MyISAM的key_buffer_size(转自:http://www.java123.net/898181.html)
一. key_buffer_size 对MyISAM表来说非常重要. 如果只是使用MyISAM表,可以把它设置为可用内存的 -%.合理的值取决于索引大小.数据量以及负载 -- 记住,MyISAM表会使 ...
- MySQL-5.7设置InnoDB表数据文件存储位置
1.表空间 Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间. 共享表空间以及独立表空间都是针对数据的存储方式而言的. 共享表空间: ...
- 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 ...
随机推荐
- geo-经纬度计算
经纬度计算, 本质上是球面三角函数的应用, 将数学公式转换为代码的过程, 站在前人的肩膀上, 自己又补充了一点: package com.iwhere.easy.travel.tool; public ...
- mysql为用户开启Trigger的权限
mysql中trigger的使用也需要权限,如果在使用中出现类似: TRIGGER command denied to user ‘username’@’192.168.0.112′ for tabl ...
- fastjson 处理 double 的精度问题
项目中使用 fastjson 来处理 json 格式,当前使用的版本为1.1.37.在和其它系统交互时,将一个json串传给了对方,原值为5.0,json 处理后格式为:{"dou" ...
- Python常见问题
1. 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方 ...
- Deep learning with Python 学习笔记(3)
本节介绍基于Keras的使用预训练模型方法 想要将深度学习应用于小型图像数据集,一种常用且非常高效的方法是使用预训练网络.预训练网络(pretrained network)是一个保存好的网络,之前已在 ...
- office online server部署和简单操作
office online server是Office Web Apps Server的升级版本,安装环境必须为 Windows Server 2012 R2 参考地址:https://technet ...
- 【JVM】3、JVM问题查找
1.查看tomcat进程号 两种方式都可以查看tomcat进程号 ps -ef | grep tomcat-web jps -lmvV |grep tomcat-web 结果如下:2556 2.查看进 ...
- java自动探测文件的字符编码
Mozilla有一个C++版的自动字符集探测算法代码,然后sourceforge上有人将其改成java版的~~ 主页:http://jchardet.sourceforge.net/ jchardet ...
- The area (hdu1071)积分求面积
The area Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- Pupu(hdu3003)数论
Pupu Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...