mysqlsh를 사용하여 다음 작업을 수행하고 싶습니다.
mysqldump -R DATABASE > DATABASE.sql
과 동일) mysql --database=NEWDATABASE < DATABASE.sql
와 유사)달릴 때mysqlsh --execute 'util.dumpTables("DATABASE", [], "SQL/DATABASE", {all:true});'
时,它当然只是转储表,这可以轻松地使用此命令导入到全新的数据库 mysqlsh --database=NEWDATABASE --execute 'util.loadDump("SQL/DATABASE", {schema: 'NEWDATABASE',ignoreVersion:true,resetProgress:true});
. 문제는 함수와 저장 프로시저가 없다는 것입니다.
그런 다음 mysqlsh --execute 'util.dumpSchemas(["DATABASE"], "DATABASE");'
,然后使用 mysqlsh --database=NEWDATABASE --execute 'util 将其加载到新数据库中.loadDump("DATABASE", {dryRun: true,ignoreVersion:true});'
시도했지만 새 데이터베이스가 아닌 원래 데이터베이스에 로드하려고 한다는 것을 즉시 알아차렸습니다. 그렇다면 완전히 다른 이름을 가진 새 데이터베이스에 어떻게 로드합니까?
궁금하신 경우를 대비해 저는 제 사용 사례에 맞게 mysqlsh를 최대한 활용하는 방법을 알아보려고 합니다. 따라서 이 경우 이전 mysqldump
은 옵션이 아닙니다.
파일을 로드하기 전에 텍스트 편집기를 사용하여
.sql
파일을 편집하면 될 것 같습니다.이 도구는 실제로 스키마를 덤프하고 이를 다른 MySQL 인스턴스로 가져오지만 스키마 이름은 동일하게 유지합니다.