phpMyAdmin
에서 내보낸 .sql
파일이 있습니다. 명령줄을 사용하여 다른 서버로 가져오고 싶습니다.
Windows Server 2008 R2가 설치되어 있습니다. .sql
파일을 C 드라이브 에 배치하고 이 명령을 시도했습니다.
database_name < file.sql
그것은 작동하지 않습니다. 구문 오류가 발생합니다.
- 어떻게 하면 이 파일을 문제 없이 가져올 수 있습니까?
- 먼저 데이터베이스를 생성해야 합니까?
질문자 :Jaylen
phpMyAdmin
에서 내보낸 .sql
파일이 있습니다. 명령줄을 사용하여 다른 서버로 가져오고 싶습니다.
Windows Server 2008 R2가 설치되어 있습니다. .sql
파일을 C 드라이브 에 배치하고 이 명령을 시도했습니다.
database_name < file.sql
그것은 작동하지 않습니다. 구문 오류가 발생합니다.
노력하다:
mysql -u username -p database_name < file.sql
MySQL 옵션을 확인하십시오.
참고-1: file.sql
의 전체 경로를 사용하는 것이 좋습니다.
참고-2: -R
및 --triggers
를 사용하여 원래 데이터베이스의 루틴과 트리거를 유지하십시오. 기본적으로 복사되지 않습니다.
참고-3 CREATE DATABASE
--no-create-db
또는 -n
옵션으로 내보냄)가 포함되어 있지 않으면 mysql에서 (빈) 데이터베이스를 생성해야 할 수 있습니다. 가져올 수 있습니다.
mysqldump 의 일반적인 용도는 전체 데이터베이스를 백업하는 것입니다.
shell> mysqldump db_name > backup-file.sql
다음과 같이 덤프 파일을 서버에 다시 로드할 수 있습니다.
유닉스
shell> mysql db_name < backup-file.sql
Windows 명령 프롬프트에서 동일:
mysql -p -u [user] [database] < backup-file.sql
파워쉘
C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"
MySQL 명령줄
mysql> use db_name; mysql> source backup-file.sql;
대용량 파일을 가져오는 데 걸리는 시간과 관련하여: 가장 중요한 것은 MySQL의 기본 설정이 autocommit = true
이기 때문에 시간이 더 걸립니다. 파일을 가져오기 전에 설정을 해제한 다음 가져오기가 gem처럼 작동하는지 확인해야 합니다.
다음 작업만 하면 됩니다.
mysql> use db_name; mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
위의 문제에 대한 모든 답변 중에서 이것이 가장 좋습니다.
mysql> use db_name; mysql> source file_name.sql;
스키마로 가져오는 가장 쉬운 방법:
mysql에 로그인하고 아래 언급 명령을 실행하십시오.
mysql> use your_db_name; mysql> source /opt/file.sql;
이 명령을 사용하여 명령줄에서 SQL을 가져올 수 있습니다.
mysql -u username -p password db_name < file.sql
예를 들어 사용자 이름이 root
이고 암호가 password
입니다. 그리고 데이터베이스 이름이 bank
이고 SQL 파일은 bank.sql
입니다. 그런 다음 다음과 같이 하면 됩니다.
mysql -u root -p password bank < bank.sql
SQL 파일이 어디에 있는지 기억하십시오. SQL 파일이 Desktop
폴더/디렉토리에 있으면 데스크탑 디렉토리로 이동하여 다음과 같은 명령을 입력하십시오.
~ ? cd Desktop ~/Desktop ? mysql -u root -p password bank < bank.sql
그리고 당신이 Project
디렉토리에 있고 SQL 파일이 Desktop
디렉토리에 있다면. Project
디렉토리에서 액세스하려면 다음과 같이 할 수 있습니다.
~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
데이터베이스가 이미 있는 경우 다음을 사용하여 dump
또는 sql
파일을 가져옵니다.
mysql -u username -p database_name < file.sql
MySQL에서 관련 데이터베이스(비어 있음)를 생성할 필요가 없는 경우 터미널 또는 cmd에서 다음 명령을 실행하여 MySQL
mysql -u userName -p;
그리고 메시지가 나타나면 암호를 제공하십시오.
다음으로 데이터베이스를 생성하고 사용합니다.
mysql>create database yourDatabaseName; mysql>use yourDatabaseName;
sql
또는 dump
파일을 다음에서 데이터베이스로 가져옵니다.
mysql> source pathToYourSQLFile;
참고: 터미널이 dump
또는 sql
파일이 있는 위치에 없으면 위의 상대 경로를 사용하십시오.
bin
폴더에 SQL 파일을 붙여넣습니다.source databasefilename.sql
을 입력하고 Enter나를 위해 일한 솔루션은 다음과 같습니다.
Use your_database_name; SOURCE path_to_db_sql_file_on_your_local;
데이터베이스를 SQL 파일로 덤프하려면 다음 명령을 사용하십시오.
mysqldump -u username -p database_name > database_name.sql
SQL 파일을 데이터베이스로 가져오려면(SQL 파일과 동일한 디렉토리에 있는지 확인하거나 파일의 전체 경로를 제공해야 함) 다음을 수행하십시오.
mysql -u username -p database_name < database_name.sql
MySQL 실행 파일이 있는 디렉토리로 이동하십시오. 사용자 이름의 경우 -u
, 암호를 묻는 메시지의 경우 -p
C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
아래와 같이 zcat
하여 gzip으로 압축된(압축된) 파일을 로드할 수도 있다는 점을 언급할 가치가 있다고 생각합니다.
zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
단일 데이터베이스를 가져오려면 다음 명령을 사용합니다.
mysql -u username -p password dbname < dump.sql
여러 데이터베이스 덤프를 가져오려면 다음 명령을 사용합니다.
mysql -u username -p password < dump.sql
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
데이터베이스 내보내기:
mysqldump -u username -p database_name > file.sql
데이터베이스 가져오기:
mysql -u username -p database_name < file.sql
한 번에 여러 SQL 파일을 가져오려면 다음을 사용하십시오.
# Unix-based solution for i in *.sql;do mysql -u root -pPassword DataBase < $i;done
단순 가져오기의 경우:
# Unix-based solution mysql -u root -pPassword DataBase < data.sql
WAMP의 경우 :
#mysqlVersion replace with your own version C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql
XAMPP의 경우:
C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
CREATE DATABASE IF NOT EXISTS db_name
및 USE db_name
문이 포함되어 있으면 명령줄에서 데이터베이스 이름을 지정할 필요가 없습니다.
.sql 파일에 언급된 데이터베이스가 존재하지 않는 경우 데이터베이스 생성 권한이 있는 사용자와 연결하고 있는지 확인하십시오.
드라이브로 이동:
command: d:
MySQL 로그인
command: c:\xampp\mysql\bin\mysql -u root -p
그것은 pwd를 요구할 것입니다. 입력:
pwd
데이터베이스 선택
use DbName;
파일 이름 제공
\.DbName.sql
데이터베이스를 가져오려면 다음 명령을 사용합니다.
mysql> create new_database; mysql> use new_database; mysql> source (Here you need to import the path of the sql file); eg: mysql> source E:/test/dump.sql;
Windows에서도 슬래시(/)를 사용해야 합니다(예: E:\test\dump.sql 대신 E:/test/dump.sql).
또는 이스케이프 때문에 이중 백슬래시(\\)를 사용합니다(예: E:\\test\\dump.sql).
사용하다:
mysql -u root -p password -D database_name << import.sql
자세한 내용은 MySQL 도움말( mysql --help
을 사용하십시오.
다음과 같은 상황에서 유용한 옵션이 될 것이라고 생각합니다.
[~]$ mysql --help mysql Ver 14.14 Distrib 5.7.20, for osx10.12 (x86_64) using EditLine wrapper Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Usage: mysql [OPTIONS] [database] -?, --help Display this help and exit. -I, --help Synonym for -? --bind-address=name IP address to bind to. -D, --database=name Database to use. --delimiter=name Delimiter to be used. --default-character-set=name Set the default character set. -f, --force Continue even if we get an SQL error. -p, --password[=name] Password to use when connecting to server. -h, --host=name Connect to host. -P, --port=# Port number to use for connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306). --protocol=name The protocol to use for connection (tcp, socket, pipe, -s, --silent Be more silent. Print results with a tab as separator, each row on new line. -v, --verbose Write more. (-v -v -v gives the table output format). -V, --version Output version information and exit. -w, --wait Wait and retry if connection is down.
큰 데이터베이스를 가져오고 진행률 표시줄이 없는 경우 재미있습니다. Pipe Viewer를 사용하여 파이프를 통한 데이터 전송 확인
Mac의 경우 brew install pv
Debian/Ubuntu의 경우 apt-get install pv
.
그 외의 경우 pv - Pipe Viewer 참조
pv import.sql | mysql -u root -p password -D database_name 1.45GiB 1:50:07 [339.0KiB/s] [=============> ] 14% ETA 11:09:36 1.46GiB 1:50:14 [ 246KiB/s] [=============> ] 14% ETA 11:09:15 1.47GiB 1:53:00 [ 385KiB/s] [=============> ] 14% ETA 11:05:36
MySQL이 있는 디렉토리로 이동하십시오.
c:\mysql\bin\> mysql -u username -p password database_name < filename.sql
또한 모든 데이터베이스를 덤프하려면 -all-databases
옵션을 사용하면 더 이상 데이터베이스 이름을 지정할 필요가 없습니다.
mysqldump -u username -ppassword –all-databases > dump.sql
또는 SQLyog와 같은 일부 GUI 클라이언트를 사용하여 이를 수행할 수 있습니다.
여기에서 대부분의 답변은 간단한 명령을 언급합니다.
mysql -u database_user -p [db_name] < database_file.sql
오늘날 데이터베이스와 테이블에는 이 명령으로 충분하지 않은 utf8-collation이 있는 것이 일반적입니다. 내보낸 테이블에 utf8-collation이 있으면 다음 명령을 사용해야 합니다.
mysql -u database_user -p --default-character-set=utf8 [db_name] < database_file.sql
Surley 이것은 다른 문자 세트에서도 작동합니다. 올바른 표기법을 표시하는 방법은 여기에서 볼 수 있습니다.
한 의견은 데이터베이스가 절대 존재하지 않는 경우 먼저 빈 데이터베이스를 생성해야 한다고 언급했습니다. 어떤 경우에는 맞을 수도 있지만 내보내기 파일에 따라 다릅니다. 내보낸 파일에 데이터베이스 생성 명령이 이미 포함되어 있으면 별도의 단계에서 데이터베이스를 생성할 필요가 없으며 가져오기 시 오류가 발생할 수도 있습니다. 따라서 가져올 때 파일을 먼저 살펴보고 어떤 명령이 포함되어 있는지 확인하는 것이 좋습니다. 내보낼 때 특히 파일이 너무 커서 편집기에서 읽기 어려운 경우 설정을 기록해 두는 것이 좋습니다.
여기에 나열되고 설명된 명령에 대한 추가 매개변수가 있습니다.
https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html
다른 데이터베이스 버전을 사용하는 경우 해당 버전의 설명서도 검색하는 것이 좋습니다. 언급된 링크는 MySQL 버전 5.7을 참조합니다.
편집하다:
동일한 매개변수가 mysqldump
에서도 작동합니다. 따라서 내보내기 및 가져오기 명령은 다르지만 언급된 매개변수는 다릅니다.
--force
옵션 추가:
mysql -u username -p database_name --force < file.sql
이 쿼리를 시도할 수 있습니다.
내 보내다:
mysqldump -u username –-password=your_password database_name > file.sql
수입:
mysql -u username –-password=your_password database_name < file.sql
이 링크를 따라가는 세부 정보:
다음 명령은 WAMP 기반 Windows 7의 명령줄(cmd)에서 작동합니다.
d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
Mac OS X을 사용하는 사람들에게 유용할 수 있다고 생각했습니다.
/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql
xampp
를 mamp
또는 다른 웹 서버로 교체하십시오.
명령줄에서 자격 증명을 제공하는 것은 좋은 생각이 아닙니다. 위의 답변은 훌륭하지만 언급을 무시합니다.
mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql
여기서 etc/myhost.cnf는 호스트, 사용자, 암호를 포함하는 파일이며 명령줄에 암호가 노출되지 않도록 합니다. 여기 샘플이 있습니다,
[client] host=hostname.domainname user=dbusername password=dbpassword
데이터베이스로 가져오기:
mysql -u 사용자 이름 -p 데이터베이스 이름 < /파일 경로/파일 이름.sql
데이터베이스에서 내보내기:
mysqldump -u 사용자 이름 -p 데이터베이스 이름 > /파일 경로/파일 이름.sql
이 명령 후에 MySQL 암호를 묻는 프롬프트가 표시됩니다.
vladkras의 답변과 유사하게 MySQL에서 명령줄을 사용하여 SQL 파일을 가져오는 방법은 무엇입니까? .
나를 위한 주요 차이점:
-p
와 암호 사이에 공백 없음 shell> mysql -u root -ppassword #note: no space between -p and password mysql> CREATE DATABASE databasename; mysql> using databasename; mysql> source /path/to/backup.sql
MariaDB와 함께 Fedora 26을 실행하고 있습니다.
참고로 저는 비밀번호 없이 기본 root +를 사용했습니다. 이전의 모든 답변에서 작동하지 않았습니다.
모든 권한과 암호를 가진 새 사용자를 만들었습니다. 그것은 효과가 있었다.
-ppassword 공백 없이.
출처 : http:www.stackoverflow.com/questions/17666249/how-do-i-import-an-sql-file-using-the-command-line-in-mysql
Bash에서 파일 이름 및 확장자 추출 (0) | 2021.11.24 |
---|---|
스테이징된 변경 사항을 어떻게 표시합니까? (0) | 2021.11.24 |
특정 범위의 JavaScript에서 임의의 정수를 생성합니까? (0) | 2021.11.24 |
MS Word에서 format 및 syntax highlight를 유지하는 code snippets을 표시하는 방법 (0) | 2021.11.24 |
3의 법칙이란? (0) | 2021.11.24 |