>  기사  >  데이터 베이스  >  Mysql은 MyISAM 스토리지 엔진을 Innodb 작업 기록 샘플 코드 공유로 대체합니다.

Mysql은 MyISAM 스토리지 엔진을 Innodb 작업 기록 샘플 코드 공유로 대체합니다.

黄舟
黄舟원래의
2017-03-23 13:40:231472검색

아래 에디터에서는 MyISAM 스토리지 엔진을 Innodb로 대체한 Mysql의 운영 기록을 요약해서 보여드립니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다.

일반적으로 mysql은 기본적으로 여러 스토리지 엔진을 제공하는데, 이는 다음을 통해 확인할 수 있습니다.

1) mysql에 innodb 플러그인이 설치되었는지 확인하세요.

다음 명령 결과를 보면 innodb 플러그인이 설치된 것을 확인할 수 있다.

아아아아

----------------------------------------- ---------------------
innodb 플러그인이 다음과 같은 경우 설치되지 않은 경우 다음 명령문을 실행하여 설치할 수 있습니다.

mysql> show plugins; 
+------------+--------+----------------+---------+---------+ 
| Name  | Status | Type   | Library | License | 
+------------+--------+----------------+---------+---------+ 
| binlog  | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
| CSV  | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
| MEMORY  | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
| InnoDB  | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
| MyISAM  | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
+------------+--------+----------------+---------+---------+ 
7 rows in set (0.00 sec)

------------------------- ---------------- ----------------------------------

2) 현재 mysql이 제공하는 스토리지 엔진이 무엇인지 확인하세요.

mysql> install plugin innodb soname 'ha_innodb.so';

3) 확인하세요. mysql의 현재 기본 스토리지 엔진:

mysql> show engines; 
+------------+---------+------------------------------------------------------------+--------------+------+------------+ 
| Engine  | Support | Comment          | Transactions | XA | Savepoints | 
+------------+---------+------------------------------------------------------------+--------------+------+------------+ 
| MRG_MYISAM | YES  | Collection of identical MyISAM tables      | NO   | NO | NO   | 
| CSV  | YES  | CSV storage engine           | NO   | NO | NO   | 
| MyISAM  | DEFAULT | Default engine as of MySQL 3.23 with great performance  | NO   | NO | NO   | 
| InnoDB  | YES  | Supports transactions, row-level locking, and foreign keys | YES   | YES | YES  | 
| MEMORY  | YES  | Hash based, stored in memory, useful for temporary tables | NO   | NO | NO   | 
+------------+---------+------------------------------------------------------------+--------------+------+------------+ 
5 rows in set (0.00 sec)

4) 특정 테이블이 사용하는 엔진을 확인합니다. 표시된 결과에서 엔진 매개변수 뒤의 매개변수는 스토리지를 나타냅니다. 현재 테이블에서 사용 중인 엔진):

mysql> show create table table name;

mysql> show variables like '%storage_engine%'; 
+----------------+--------+ 
| Variable_name | Value | 
+----------------+--------+ 
| storage_engine | MyISAM | 
+----------------+--------+ 
1 row in set (0.00 sec)

5) 가져오는 방법 MyISAM 라이브러리를 INNODB 엔진 형식으로:

백업된 xxx.sql 파일에서 모든 ENGINE=MyISAM을 ENGINE=INNODB로 바꾸세요
다시 가져오기만 하면 됩니다.

6) 테이블 변환 명령:

mysql> alter table table nameengine=innodb;

위에서 볼 수 있듯이 이 머신에서 mysql이 사용하는 스토리지 엔진은 기본 MyISAN입니다. 비즈니스 요구로 인해 먼저 스토리지 엔진을 Innodb로 변경해야 합니다.

작업 기록은 다음과 같습니다.

1) 안전 모드
에서 mysql을 종료합니다.

mysql> show create table wx_share_log; 
+--------------+----------------------------------------------------------------------------------------------------------------------------------+ 
| Table  | Create Table                   | 
+--------------+------------------------------------------------------------------------------------------------------------------------------------+ 
| wx_share_log | CREATE TABLE `wx_share_log` ( 
 `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '微信分享日志自增ID', 
 `reference_id` int(11) NOT NULL COMMENT '推荐的经纪人id', 
 `create_time` datetime NOT NULL COMMENT '创建时间', 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8     | 
+--------------+--------------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec)

2) my.cnf 백업

[root@dev mysql5.1.57]# mysqladmin -uroot -p shutdown
Enter password: 
[root@dev mysql5.1.57]# ps -ef|grep mysql

3) my.cnf를 수정합니다. cnf 구성 파일

[root@dev mysql5.1.57]# cp my.cnf my.cnf.old

4) ib_log 삭제 / mysql/data 디렉토리 파일0,ib_logfile1. 다른 곳을 삭제하거나 잘라냅니다.

[root@dev mysql5.1.57]# vim my.cnf
.....
[mysqld]                                      
  //在这个配置区域添加下面一行,指定存储引擎为innodb
default-storage-engine = InnoDB

5) mysql을 시작하고 mysql에 로그인하여 스토리지 엔진이 전환되었는지 확인하세요

아아아아아아

위 내용은 Mysql은 MyISAM 스토리지 엔진을 Innodb 작업 기록 샘플 코드 공유로 대체합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.