데이터 없는 MySql 내보내기 스키마
Java 프로그램과 함께 MySql 데이터베이스를 사용하고 있는데, 이제 다른 사람에게 프로그램을 주고 싶습니다.
데이터 없이 MySql 데이터베이스 구조만 내보내려면 어떻게 해야 합니까?
를 사용하여 할 수 있습니다.--no-data
mysqldump 명령어 옵션
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에서도 같은 기능을 제공할 수 있습니다.
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에서 다음 작업을 수행할 수 있습니다.
- 내보내기
- 내보내기 방법:사용자 정의 - 가능한 모든 옵션을 표시합니다.
- 형식별 옵션: 구조 및 데이터가 아닌 구조
전체 데이터베이스를 내보내려면:
언급URL : https://stackoverflow.com/questions/6175473/mysql-export-schema-without-data
'programing' 카테고리의 다른 글
Windows 또는 Linux를 검출하고 있습니까? (0) | 2022.10.11 |
---|---|
아나콘다 업데이트 방법 (0) | 2022.10.02 |
Js가 현재 달의 첫 번째와 마지막 날을 얻는 순간 (0) | 2022.10.02 |
래퍼 "https"를 찾을 수 없습니다. PHP 구성 시 래퍼 "https"를 사용하도록 설정하지 않았습니까? (0) | 2022.10.02 |
공유 테이블 구조를 가진 멀티 테넌트(Multi-tenant) 데이터베이스를 작성하려면 어떻게 해야 합니까? (0) | 2022.10.02 |