sql.gz 파일을 가져와 putty를 사용하여 데이터베이스에 삽입합니다.
하고 sql.gz
SSH를 사용하여 데이터베이스에 파일을 저장합니다.떻게게 해???
예를 들어, 이름이 다음과 같은 전화번호의 데이터베이스를 가지고 있습니다.numbers.sql.gz
떤떤종 ?류 ?? ????이 파일을 데이터베이스로 Import하려면 어떻게 해야 합니까?
퍼티와 같은 셸 프로그램을 사용하여 서버에 로그인합니다.
명령줄에 다음 명령을 입력합니다.
zcat DB_File_Name.sql.gz | mysql -u username -p Target_DB_Name
어디에
DB_File_Name.sql.gz
= = sql.gz 파일 전체 경로
username
= mysql username = mysql ( mysql )
Target_DB_Name
= 데이터베이스 이름
명령줄에서 Enter 키를 누르면 비밀번호 입력이 요구됩니다.MySQL 비밀번호를 입력합니다.
당신은 해냈어요!
이 파일은 gzip(압축) SQL 파일이며 확장자로 .sql을 사용하는 일반 텍스트 파일입니다.먼저 scp를 통해 파일을 데이터베이스 서버에 복사해야 합니다.PuTTY는 pscp인 것 같아요.실행
# Copy it to the server via pscp
C:\> pscp.exe numbers.sql.gz user@serverhostname:/home/user
다음 에 SSH하고 "Da" SSH"로 을 압축 합니다.gunzip
user@serverhostname$ gunzip numbers.sql.gz
user@serverhostname$ ls
numbers.sql
MySQL Import를 .<
다음과 같이 합니다.
user@serverhostname$ mysql -u mysqluser -p < numbers.sql
numbers.sql 파일이 데이터베이스를 생성하지 않지만 데이터베이스가 이미 존재할 것으로 예상되는 경우 명령어에 데이터베이스도 포함해야 합니다.
user@serverhostname$ mysql -u mysqluser -p databasename < numbers.sql
외부에서 MySQL 서버에 직접 연결할 수 있는 경우 복사 및 SSH 대신 로컬 MySQL 클라이언트를 사용할 수 있습니다.이 경우 Windows에서 .gz 파일을 압축 해제할 수 있는 유틸리티만 있으면 됩니다.7zip은 그렇게 할 것입니다.그렇지 않으면 Windows용 gzip/gunzip 바이너리를 입수할 수 있습니다.
아카이브를 추출하는 별도의 절차 없이 다음을 수행합니다.
# import gzipped-mysql dump
gunzip < DUMP_FILE.sql.gz | mysql --user=DB_USER --password DB_NAME
위의 스니펫을 사용하여 mysqldump 백업을 다시 Import하고 다음 스니펫을 사용하여 백업을 수행합니다.
# mysqldump and gzip (-9 ≃ highest compression)
mysqldump --user=DB_USER --password DB_NAME | gzip -9 > DUMP_FILE.sql.gz
oneliner의 경우 Linux 또는 cygwin에서 호스트에서 공개 키 인증을 수행해야 합니다. 그렇지 않으면 ssh가 암호를 요구합니다.
gunzip -c numbers.sql.gz | ssh user@host mysql --user=user_name --password=your_password db_name
또는 포트 전송을 수행하고 "로컬" 연결을 사용하여 원격 mysql에 연결합니다.
ssh -L some_port:host:local_mysql_port user@host
그런 다음 로컬 머신에서 localhost:some_port에 대한 mysql 연결을 수행합니다.
포트 포워딩은 유사한 -L 옵션을 사용하여 putty에서 동작하거나 트리 아래 어딘가에 있는 설정 패널에서 설정할 수 있습니다.
scp가 있는 경우:
파일을 로컬에서 원격으로 이동하려면:
$scp /home/user/file.gz user@ipaddress:path/to/file.gz
파일을 원격에서 로컬로 이동하려면:
$scp user@ipaddress:path/to/file.gz /home/user/file.gz
리모트 시스템에 로그인하지 않고 mysql 파일을 내보내려면 다음 절차를 수행합니다.
$mysqldump -h ipaddressofremotehost -Pportnumber -u usernameofmysql -p databasename | gzip -9 > databasename.sql.gz
리모트 시스템에 로그인하여 mysql 파일을 Import하려면 다음 절차를 수행합니다.
$gunzip < databasename.sql.gz | mysql -h ipaddressofremotehost -Pportnumber -u usernameofmysql -p
주의: 리모트호스트의 IP 주소에 네트워크 액세스 할 수 있는 것을 확인해 주세요.
네트워크 액세스를 확인하려면:
$ping ipaddressofremotehost
Import하는 데이터베이스가 많고 덤프가 큰 경우(수 기가바이트 Gzip 덤프로 작업하는 경우가 많습니다).
여기 mysql 안에서 하는 방법이 있습니다.
$ mkdir databases
$ cd databases
$ scp user@orgin:*.sql.gz . # Here you would just use putty to copy into this dir.
$ mkfifo src
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.41-0
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database db1;
mysql> \! ( zcat db1.sql.gz > src & )
mysql> source src
.
.
mysql> create database db2;
mysql> \! ( zcat db2.sql.gz > src & )
mysql> source src
이것보다 더 좋은 점은
zcat db1.sql.gz | mysql -u root -p
패스워드를 여러 번 입력하지 않아도 여러 번 쉽게 할 수 있습니다.
mysql 덤프가 .gz 파일일 경우 $ gunzip mysqldump.sql.gz를 입력하여 파일을 압축 해제해야 합니다.
그러면 .gz 파일이 압축 해제되고 mysqldump만 저장됩니다.sql이 같은 위치에 있습니다.
다음 명령을 입력하여 SQL 데이터 파일을 가져옵니다.
$mysql - u username -p -h localhost test-password < mysqldump.sql 비밀번호: _
현재 서버에 덤프 파일 SQL.gz 생성
$ sudo apt-get install pigz pv
$ pv | mysqldump --user=<yourdbuser> --password=<yourdbpassword> <currentexistingdbname> --single-transaction --routines --triggers --events --quick --opt -Q --flush-logs --allow-keywords --hex-blob --order-by-primary --skip-comments --skip-disable-keys --skip-add-locks --extended-insert --log-error=/var/log/mysql/<dbname>_backup.log | pigz > /path/to/folder/<dbname>_`date +\%Y\%m\%d_\%H\%M`.sql.gz
옵션:접속 명령어 인수
--host=127.0.0.1 / localhost / IP Address of the Dump Server
--port=3306
위에서 작성한 덤프 파일을 다른 서버로 Import하다
$ sudo apt-get install pigz pv
$ zcat /path/to/folder/<dbname>_`date +\%Y\%m\%d_\%H\%M`.sql.gz | pv | mysql --user=<yourdbuser> --password=<yourdbpassword> --database=<yournewdatabasename> --compress --reconnect --unbuffered --net_buffer_length=1048576 --max_allowed_packet=1073741824 --connect_timeout=36000 --line-numbers --wait --init-command="SET GLOBAL net_buffer_length=1048576;SET GLOBAL max_allowed_packet=1073741824;SET FOREIGN_KEY_CHECKS=0;SET UNIQUE_CHECKS = 0;SET AUTOCOMMIT = 1;FLUSH NO_WRITE_TO_BINLOG QUERY CACHE, STATUS, SLOW LOGS, GENERAL LOGS, ERROR LOGS, ENGINE LOGS, BINARY LOGS, LOGS;"
옵션:접속 명령어 인수
--host=127.0.0.1 / localhost / IP Address of the Import Server
--port=3306
mysql: [경고] 명령줄 인터페이스에서 패스워드를 사용하는 것은 안전하지 않을 수 있습니다. 1.0GiB 00:06:51 [8.05MiB/s] [<=>]
옵션 소프트웨어 패키지를 사용하면 데이터베이스 SQL 파일을 빠르게 Import할 수 있습니다.
- 프로그레스 뷰(프로그레스 뷰)를 사용하여
- gzip/gunzip 파일에 병렬 gzip(pigz/unpigz)
출력의 고속 지퍼링
언급URL : https://stackoverflow.com/questions/10971597/import-and-insert-sql-gz-file-into-database-with-putty
'programing' 카테고리의 다른 글
캡슐화와 추상화의 차이 (0) | 2022.09.28 |
---|---|
Python 3.5의 타입 힌트는 무엇입니까? (0) | 2022.09.28 |
file_get_contents() UTF-8 문자를 분할합니다. (0) | 2022.09.28 |
오브젝트 메모리주소에의 액세스 (0) | 2022.09.28 |
jQuery를 사용하여 URL로 이동하는 방법 (0) | 2022.09.28 |