찾다

 >  Q&A  >  본문

mysqlsh 전체 스키마 덤프 및 로드

mysqlsh를 사용하여 다음 작업을 수행하고 싶습니다.

  1. 주어진 데이터베이스의 전체 스키마를 덤프합니다(테이블뿐만 아니라 함수, 트리거 및 이 데이터베이스 스키마와 관련된 모든 것, mysqldump -R DATABASE > DATABASE.sql과 동일)
  2. 이 전체 스키마를 방금 만든 새 데이터베이스에 로드합니다(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은 옵션이 아닙니다.

P粉662802882P粉662802882241일 전456

모든 응답(1)나는 대답할 것이다

  • P粉764785924

    P粉7647859242024-03-27 10:18:17

    파일을 로드하기 전에 텍스트 편집기를 사용하여 .sql 파일을 편집하면 될 것 같습니다.

    이 도구는 실제로 스키마를 덤프하고 이를 다른 MySQL 인스턴스로 가져오지만 스키마 이름은 동일하게 유지합니다.

    회신하다
    0
  • 취소회신하다