mysqldump를 사용하여 my mysql 데이터베이스의 복사본을 만들고 싶습니다.mysqldump로 다른 메모리 엔진을 설정하십시오.
나는
mysqldump db1 | mysql db2
그러나 DB1 엔진 =의 MyISAM 모든 테이블입니다이 유닉스 명령을 사용합니다. DB2가 엔진 = 메모리를 가진 모든 테이블을 가지기를 바란다.
누구나 한 명령에서이 작업을 수행하는 방법을 알고 있습니까? for-loop에서 모든 테이블을 변경하기 위해 PHP/Python 등의 스크립트를 호출하고 싶지 않습니다.
감사합니다.
'sed'를 파이프하여'MyISAM'을'memory' 또는 정확한 문자열이 무엇이든 대체 할 수 있습니다. 그러나 db 데이터가 'myisam'이라는 단어를 자연스럽게 포함한다면, 테이블 구조뿐만 아니라 데이터도 바꿀 수 있습니다. 더 나은 옵션은 임시 파일로 덤프하고 파일을 편집 한 다음 모든 구조를 적절하게 변경 한 다음 가져 오기를 수행하는 것입니다. –
답장을 보내 주셔서 감사합니다. 그러나 유닉스 명령으로 사용하고 싶기 때문에 스크립트 나 플러그인을 사용할 필요가 없습니다. 원본 데이터베이스가 대상 데이터베이스와 다른 서버에 있기 때문에. – user3605780
그래서'sed'를 사용하십시오. 잘못된 것을 검색/대체 할 때 DB의 데이터를 손상시킬 수 있다는 것을 알고 있어야합니다. –