更换Mysql存储引擎为Innodb

更换Mysql存储引擎为Innodb

问题:由于环境中的Mysql数据库使用的是Mysql5.1.77版本 ,使用的是MYISAM引擎 ,会导致表级锁,并且不支持故障自动恢复(CSR)

表级锁:对表中任意一行数据修改操作时,整个表都会被锁定,对其他行的数据都不能操作
不支持故障自动恢复(CSR) :当断电时可能会出现数据损坏或丢失的问题

解决方案: 将数据库升级到5.6.44版本并更换引擎为Innodb

5.1.77里对Innodb的支持不够完善,更换版本为5.6.44

实现步骤(使用aaa演示)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| aaa                |
| mysql              |
| performance_schema |
+--------------------+
8 rows in set (0.00 sec)

mysql>
mysql> show tables;
+---------------+
| Tables_in_aaa |
+---------------+
| a1            |
| b1            |
| c1            |
| d1            |
+---------------+
4 rows in set (0.00 sec)

查看表使用的引擎

mysql> select table_schema,table_name,engine from information_schema.tables where engine='myisam';
+--------------------+---------------------------+--------+
| table_schema       | table_name                | engine |
+--------------------+---------------------------+--------+
| aaa                | a1                        | MyISAM |
| aaa                | b1                        | MyISAM |
| aaa                | c1                        | MyISAM |
| aaa                | d1                        | MyISAM |
+--------------------+---------------------------+--------+
35 rows in set (0.00 sec)

将aaa数据库备份出来

[[email protected] ~]# mysqldump -uroot -p -S /data/3307/data/mysql.sock -B aaa >/tmp/aa.sql
Enter password:***

将数据库的备份文件scp到新的mysql环境中

[[email protected] ~]# scp /tmp/aa.sql [email protected]:/a.sql
[email protected]'s password:
aa.sql                                                                              100% 3450     2.7MB/s   00:00
[[email protected] ~]#

在新的Mysql环境上修改备份文件的引擎信息

[[email protected] ~]# sed -i 's#ENGINE=MyISAM#ENGINE=INNODB#g' /a.sql

将数据库备份文件导入到新数据库中并查看

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| aaa                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
mysql>

查看表的存储引擎

mysql> use aaa
Database changed
mysql> show tables;
+---------------+
| Tables_in_aaa |
+---------------+
| a1            |
| b1            |
| c1            |
| d1            |
+---------------+
4 rows in set (0.00 sec)

mysql> show create table a1;
+-------+-------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                            |
+-------+-------------------------------------------------------------------------------------------------------------------------+
| a1    | CREATE TABLE `a1` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(12) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
#ENGINE=InnoDB 已经被更改为Innodb

原文地址:https://www.cnblogs.com/wesley-Linux/p/12335101.html

时间: 2024-10-04 17:12:40

更换Mysql存储引擎为Innodb的相关文章

Mysql更换MyISAM存储引擎为Innodb的操作记录

一般情况下,mysql会默认提供多种存储引擎,可以通过下面的查看: 1)查看mysql是否安装了innodb插件.通过下面的命令结果可知,已经安装了innodb插件. mysql> show plugins; +------------+--------+----------------+---------+---------+ | Name | Status | Type | Library | License | +------------+--------+----------------

mysql 存储引擎 myisam innodb 区别

虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是它俩了.可能有站长并未注意过MySQL的存储引擎,其实存储引擎也是数据库设计里的一大重要点,那么博客系统应该使用哪种存储引擎呢?下面我们分别来看两种存储引擎的区别. MySQL存储引擎MyISAM与InnoDB的区别 一.InnoDB支持事务,MyISAM不支持,这一点是非常之重要.事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了. 二.MyISAM适合查询以及插入为主的

MySQL存储引擎【InnoDB、MyISAM、Memory】

数据库,MySQL这样存在多存储引擎的数据库软件,清楚常见的存储引擎的区别,使用合适的存储引擎,使得项目跑的更顺畅,有时候对于一个项目,甚至比项目本身都重要.这篇文章,旨在浅谈常见的三种存储引擎的区别,优缺点.是学习也是分享. 1:查看MySQL所支持的存储引擎: 1.1 show engines; 1.2 show variables like 'have%'; 这样,我们清楚了MySQL所支持的存储引擎都有哪些. 下面,分析一下几个常见的存储引擎.InnoDB,MYISAM和Memory.

二、mysql存储引擎之InnoDB

一.存储引擎简介 mysql采用业务逻辑和数据存储分离的架构,底层的存储引擎为上层的SQL层提供了支持:mysql采用的是插件的方式将存储引擎直接加载到正在运行的MySQL中,这是mysql的一个重要特性: 以下命令可以查询当前mysql支持的存储引擎: show engines; 本文环境: 1)mysql版本为:5.7.18 2)系统: mac os 存储引擎9种: 除了FEDERATED以外的8种都是支持的,默认是InnoDB: 二.InnoDB特点 1)存储限制:64TB 2)事务安全:

浅谈MySQL存储引擎选择 InnoDB还是MyISAM

如果是一些小型的应用或项目,那么MyISAM 也许会更适合.当然,在大型的环境下使用MyISAM 也会有很大成功的时候,但却不总是这样的.如果你正在计划使用一个超大数据量的项目,那么你应该直接使用InnoDB方式. MyISAM 是MySQL中默认的存储引擎,一般来说不是有太多人关心这个东西.决定使用什么样的存储引擎是一个很tricky的事情,但是还是值我们去研究一下,这里的文章只考虑 MyISAM 和InnoDB这两个,因为这两个是最常见的. 下面先让我们回答一些问题:◆你的数据库有外键吗? 

Mysql 存储引擎中InnoDB与MyISAM差别(网络整理)

1. 事务处理 innodb 支持事务功能,myisam 不支持. Myisam 的运行速度更快,性能更好. 2,select ,update ,insert ,delete 操作 MyISAM:假设运行大量的SELECT.MyISAM是更好的选择 InnoDB:假设你的数据运行大量的INSERT或UPDATE,出于性能方面的考虑.应该使用InnoDB表 3.锁机制不同 InnoDB 为行级锁,myisam 为表级锁. 注意:当数据库无法确定所找的行时.也会变为锁定整个表. 如: update

Mysql 存储引擎中InnoDB与MyISAM区别(网络整理)

1, 事务处理 innodb 支持事务功能,myisam 不支持. Myisam 的执行速度更快,性能更好. 2,select ,update ,insert ,delete 操作 MyISAM:如果执行大量的SELECT,MyISAM是更好的选择 InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表 3,锁机制不同 InnoDB 为行级锁,myisam 为表级锁. 注意:当数据库无法确定所找的行时,也会变为锁定整个表. 如: update

[MySQL] 存储引擎中InnoDB与Myisam的主要区别

1, 事务处理 innodb 支持事务功能,myisam 不支持. Myisam 的执行速度更快,性能更好.   2,select ,update ,insert ,delete 操作   MyISAM:如果执行大量的SELECT,MyISAM是更好的选择 InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表 3,锁机制不同   InnoDB 为行级锁,myisam 为表级锁. 注意:当数据库无法确定,所找的行时,也会变为锁定整个表. 如: 

Mysql存储引擎中InnoDB与Myisam的区别

1. 事务处理innodb 支持事务功能,myisam 不支持.Myisam 的执行速度更快,性能更好. 2. select ,update ,insert ,delete 操作MyISAM:如果执行大量的SELECT,MyISAM是更好的选择InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表3. 锁机制不同 InnoDB 为行级锁,myisam 为表级锁. 注意:当数据库无法确定,所找的行时,也会变为锁定整个表.如: update tab