아래 에디터에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!