programing

데이터 없는 MySql 내보내기 스키마

copysource 2022. 10. 2. 15:53
반응형

데이터 없는 MySql 내보내기 스키마

Java 프로그램과 함께 MySql 데이터베이스를 사용하고 있는데, 이제 다른 사람에게 프로그램을 주고 싶습니다.

데이터 없이 MySql 데이터베이스 구조만 내보내려면 어떻게 해야 합니까?

를 사용하여 할 수 있습니다.--no-datamysqldump 명령어 옵션

mysqldump -h yourhostnameorIP -u root -p --no-data dbname > schema.sql

네, 사용할 수 있습니다.mysqldump와 함께--no-data옵션:

mysqldump -u user -h localhost --no-data -p database > database.sql

각 테이블을 추출할 수도 있습니다.--no-data선택

mysqldump -u user -h localhost --no-data -p database tablename > table.sql

mysqldump 명령어와 함께 -d 옵션을 사용할 수 있습니다.

mysqldump -u root -p -d databasename > database.sql

출력을 사용하지 않고 덤핑합니다.

mysqldump --no-data <database name> --result-file=schema.sql

단, --no-data 옵션은 뷰 정의를 포함하지 않습니다.그래서 만약 당신이 다음과 같은 관점을 가졌다면

create view v1 
 select `a`.`id` AS `id`,
 `a`.`created_date` AS `created_date` 
from t1;

--no-data 옵션을 사용하면 뷰 정의가 다음과 같이 변경됩니다.

create view v1
 select 1 AS `id`, 1 AS `created_date`

IntelliJ 를 사용하고 있는 경우는, 데이타베이스 뷰를 유효하게 할 수 있습니다([보기] -> [툴]창 -> [데이터베이스]).

이 보기 내에서 데이터베이스에 연결합니다.그런 다음 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 "DDL 복사"를 선택할 수 있습니다.다른 IDE에서도 같은 기능을 제공할 수 있습니다.

인텔리J DDL

MYSQL Administrator Tool 무료 http://dev.mysql.com/downloads/gui-tools/5.0.html 를 사용할 수 있습니다.

MYSQL DataBase를 내보내기 위한 많은 옵션이 있습니다.

모든 데이터베이스에서 모든 테이블을 덤프하고 데이터 없이(데이터베이스 및 테이블 구조만) 다음 명령을 사용할 수 있습니다.

mysqldump -P port -h hostname_or_ip -u username -p --no-data --all-databases > db_backup.sql

그러면 .sql 파일이 생성되어 mysql 서버에 로드하여 새로운 데이터베이스를 작성할 수 있습니다.실제 가동 환경에서는 이 사용 사례가 많지 않지만 데모 웹 사이트에 링크된 서버를 리셋하기 위해 매주 이 작업을 수행하고 있기 때문에 사용자가 주중에 무엇을 하든 일요일 밤에는 모든 것이 "새로운" 상태로 돌아갑니다.

--routines 및 --events 옵션을 추가하여 저장된 루틴 및 이벤트 정의도 포함합니다.

mysqldump -u <user> -p --no-data --routines --events test > dump-defs.sql

shell > mysqldump --no-data --syslog --sql 테스트> dump-defs.sql

mysql-backup4j를 사용하면 코드 행이 적은 데이터베이스를 쉽게 백업할 수 있습니다.데이터베이스용 SQL 덤프가 생성되어 나중에 쉽게 데이터베이스를 복원할 수 있습니다.

이에 필요한 maven 의존관계는 다음과 같습니다.

 <dependency>
        <groupId>com.smattme</groupId>
        <artifactId>mysql-backup4j</artifactId>
        <version>1.0.1</version>
    </dependency>

이제 Java에서의 구현이 시작됩니다.cool 파라미터 세트로 플레이 할 수 있습니다.

/**
 * Creator : Tanvir Chowdhury
 * Date    : 2021-11-15
 */
public class BackupDatabase {
    public static void main(String[] args) throws Exception {

        Properties properties = new Properties();
        properties.setProperty(MysqlExportService.DB_NAME, "hcs_test_db");
        properties.setProperty(MysqlExportService.DB_USERNAME, "root");
        properties.setProperty(MysqlExportService.DB_PASSWORD, "root");
        properties.setProperty(MysqlExportService.DELETE_EXISTING_DATA, "true");
        properties.setProperty(MysqlExportService.DROP_TABLES, "true");
        properties.setProperty(MysqlExportService.ADD_IF_NOT_EXISTS, "true");
        properties.setProperty(MysqlExportService.JDBC_DRIVER_NAME, "com.mysql.cj.jdbc.Driver");
        properties.setProperty(MysqlExportService.JDBC_CONNECTION_STRING, "jdbc:mysql://localhost:3306/hcs_test_db");

        properties.setProperty(MysqlExportService.TEMP_DIR, new File("/Users/tanvir/Desktop/backups/backup.sql").toString());
        properties.setProperty(MysqlExportService.PRESERVE_GENERATED_ZIP, "true");

        MysqlExportService mysqlExportService = new MysqlExportService(properties);
        mysqlExportService.export();

    }
}

필요한 경우 메일 보내기 옵션을 사용하여 백업 파일을 임의의 이메일 주소로 보낼 수도 있습니다.

또는 mysqldump 명령을 사용하여 --no-data 옵션을 사용할 수 있습니다.Java에서 이를 수행하려면 이 명령을 매개 변수로서 runtime exec() 메서드에 전달합니다.

mysqldump -u root -h localhost --no-data -proot hcs_db_one?useSSL=false > db_one_dump.sql

개별 테이블의 작성 스크립트를 가져오려면:
키 ) - 모든 테이블 선택(Shift 키 포함)
[ Copy to Clipboard ]> [ Create Statement ](문 작성)을 클릭합니다.

다음 방법을 사용할 수 있습니다.

mysqldump -d <database name> > <filename.sql> // -d : without data

도움이 되길 바랍니다.

phpmyadmin에서 다음 작업을 수행할 수 있습니다.

  1. 내보내기
  2. 내보내기 방법:사용자 정의 - 가능한 모든 옵션을 표시합니다.
  3. 형식별 옵션: 구조 및 데이터가 아닌 구조

전체 데이터베이스를 내보내려면:

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/6175473/mysql-export-schema-without-data

반응형