400 개가 넘는 테이블이있는 대용량 MySQL 데이터베이스가 있습니다. 거의 모든 테이블을 프레임 워크 요구 사항에 따라 InnoDB로 변경해야합니다. w 적절한 "표를 ALTER"는/나는 모든 테이블의 목록이있는 플랫 파일을 만들었습니다MySQL 테이블 엔진이 업데이트되지 않음 (또는 업데이트가 반영되지 않음)
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'DATABASE_NAME';
:
나는 다음과 같은 쿼리를 실행하고있어 DB를 현재 테이블 엔진을 볼 수 구문 :
ALTER TABLE wishlist_item ENGINE=InnoDB;
...etc...
나는 다음 구문/w이 파일을 실행했습니다 그러나
mysql -u USERNAME -pPASSWORD DATABASE_NAME < alter_staging_tables.txt
을 때 실행 :
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'DATABASE_NAME';
내 파일이 실행 중이고 엔진 유형이 변경되었지만 여전히 모든 테이블이 MyISAM으로 표시됩니다. 내가도에 갔어요, 한 손으로 변경 실행 :
mysql> ALTER TABLE zendesk ENGINE=InnoDB;
Query OK, 8 rows affected, 1 warning (0.00 sec)
Records: 8 Duplicates: 0 Warnings: 0
을하지만 선택을 수행 할 때
| zendesk | MyISAM |
는 아직도의 MyISAM으로 테이블을 보여줍니다. 내가 도대체 뭘 잘못하고있는 겁니까? TIA.
업데이트 : MySQL 버젼 :
mysql -v
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 306675
Server version: 5.0.77-log Source distribution
업데이트 : 그래서 변화가 부착되지 않습니다 :
mysql> ALTER TABLE zendesk ENGINE=InnoDB;
Query OK, 8 rows affected, 1 warning (0.00 sec)
Records: 8 Duplicates: 0 Warnings: 0
mysql> show warnings;
+---------+------+-------------------------------------------------+
| Level | Code | Message |
+---------+------+-------------------------------------------------+
| Warning | 1266 | Using storage engine MyISAM for table 'zendesk' |
+---------+------+-------------------------------------------------+
1 row in set (0.00 sec)
MySQL 버전? 그들 중 일부는 이런 것들에 대해 거짓말을합니다 ... – Romain