etc./StackOverFlow

MySQL에서 명령줄을 사용하여 SQL 파일을 가져오려면 어떻게 합니까?

청렴결백한 만능 재주꾼 2021. 11. 24. 06:14
반응형

질문자 :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에서 (빈) 데이터베이스를 생성해야 할 수 있습니다. 가져올 수 있습니다.


bansi

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;

vladkras

대용량 파일을 가져오는 데 걸리는 시간과 관련하여: 가장 중요한 것은 MySQL의 기본 설정이 autocommit = true 이기 때문에 시간이 더 걸립니다. 파일을 가져오기 전에 설정을 해제한 다음 가져오기가 gem처럼 작동하는지 확인해야 합니다.

다음 작업만 하면 됩니다.

 mysql> use db_name; mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;

Paresh Behede

위의 문제에 대한 모든 답변 중에서 이것이 가장 좋습니다.

 mysql> use db_name; mysql> source file_name.sql;

Manoj Kumar

스키마로 가져오는 가장 쉬운 방법:

mysql에 로그인하고 아래 언급 명령을 실행하십시오.

 mysql> use your_db_name; mysql> source /opt/file.sql;

Ammad

이 명령을 사용하여 명령줄에서 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

Amrit Dhungana

데이터베이스가 이미 있는 경우 다음을 사용하여 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 파일이 있는 위치에 없으면 위의 상대 경로를 사용하십시오.


Kasun Siyambalapitiya

  1. MySQL 명령줄을 엽니다.
  2. mysql bin 디렉토리의 경로를 입력하고 Enter 키를 누릅니다.
  3. mysql 서버 bin 폴더에 SQL 파일을 붙여넣습니다.
  4. MySQL에서 데이터베이스를 생성합니다.
  5. SQL 파일을 가져오려는 특정 데이터베이스를 사용하십시오.
  6. source databasefilename.sql입력하고 Enter
  7. SQL 파일이 성공적으로 업로드되었습니다.

user4412947

나를 위해 일한 솔루션은 다음과 같습니다.

 Use your_database_name; SOURCE path_to_db_sql_file_on_your_local;

Shiks

데이터베이스를 SQL 파일로 덤프하려면 다음 명령을 사용하십시오.

 mysqldump -u username -p database_name > database_name.sql

SQL 파일을 데이터베이스로 가져오려면(SQL 파일과 동일한 디렉토리에 있는지 확인하거나 파일의 전체 경로를 제공해야 함) 다음을 수행하십시오.

 mysql -u username -p database_name < database_name.sql

Adeleke Akinade

MySQL 실행 파일이 있는 디렉토리로 이동하십시오. 사용자 이름의 경우 -u , 암호를 묻는 메시지의 경우 -p

 C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql

Tanmay Patel

아래와 같이 zcat 하여 gzip으로 압축된(압축된) 파일을 로드할 수도 있다는 점을 언급할 가치가 있다고 생각합니다.

 zcat database_file.sql.gz | mysql -u username -p -h localhost database_name

Francesco Casula

단일 데이터베이스를 가져오려면 다음 명령을 사용합니다.

 mysql -u username -p password dbname < dump.sql

여러 데이터베이스 덤프를 가져오려면 다음 명령을 사용합니다.

 mysql -u username -p password < dump.sql

Leopathu

mysql --user=[user] --password=[password] [database] < news_ml_all.sql

user3546602

데이터베이스 내보내기:

 mysqldump -u username -p database_name > file.sql

데이터베이스 가져오기:

 mysql -u username -p database_name < file.sql

user777388

한 번에 여러 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

Abdul Rehman Janjua

CREATE DATABASE IF NOT EXISTS db_nameUSE db_name 문이 포함되어 있으면 명령줄에서 데이터베이스 이름을 지정할 필요가 없습니다.

.sql 파일에 언급된 데이터베이스가 존재하지 않는 경우 데이터베이스 생성 권한이 있는 사용자와 연결하고 있는지 확인하십시오.


Reuben

데이터베이스 가져오기

  1. 드라이브로 이동:

     command: d:
  2. MySQL 로그인

     command: c:\xampp\mysql\bin\mysql -u root -p
  3. 그것은 pwd를 요구할 것입니다. 입력:

     pwd
  4. 데이터베이스 선택

     use DbName;
  5. 파일 이름 제공

     \.DbName.sql

Pritam Chaudhari

데이터베이스를 가져오려면 다음 명령을 사용합니다.

 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).


Madhusanka Edirimanna

사용하다:

 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

Siva Praveen

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 클라이언트를 사용하여 이를 수행할 수 있습니다.


Sathish D

여기에서 대부분의 답변은 간단한 명령을 언급합니다.

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/show-collation.html

한 의견은 데이터베이스가 절대 존재하지 않는 경우 먼저 빈 데이터베이스를 생성해야 한다고 언급했습니다. 어떤 경우에는 맞을 수도 있지만 내보내기 파일에 따라 다릅니다. 내보낸 파일에 데이터베이스 생성 명령이 이미 포함되어 있으면 별도의 단계에서 데이터베이스를 생성할 필요가 없으며 가져오기 시 오류가 발생할 수도 있습니다. 따라서 가져올 때 파일을 먼저 살펴보고 어떤 명령이 포함되어 있는지 확인하는 것이 좋습니다. 내보낼 때 특히 파일이 너무 커서 편집기에서 읽기 어려운 경우 설정을 기록해 두는 것이 좋습니다.

여기에 나열되고 설명된 명령에 대한 추가 매개변수가 있습니다.

https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html

다른 데이터베이스 버전을 사용하는 경우 해당 버전의 설명서도 검색하는 것이 좋습니다. 언급된 링크는 MySQL 버전 5.7을 참조합니다.

편집하다:
동일한 매개변수가 mysqldump 에서도 작동합니다. 따라서 내보내기 및 가져오기 명령은 다르지만 언급된 매개변수는 다릅니다.


David

--force 옵션 추가:

 mysql -u username -p database_name --force < file.sql

ktaria

이 쿼리를 시도할 수 있습니다.

내 보내다:

 mysqldump -u username –-password=your_password database_name > file.sql

수입:

 mysql -u username –-password=your_password database_name < file.sql

이 링크를 따라가는 세부 정보:

https://chartio.com/resources/tutorials/importing-from-and-exporting-to-files-using-the-mysql-command-line/


Md Shariful Islam

다음 명령은 WAMP 기반 Windows 7의 명령줄(cmd)에서 작동합니다.

 d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql

victor

Mac OS X을 사용하는 사람들에게 유용할 수 있다고 생각했습니다.

 /Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql

xamppmamp 또는 다른 웹 서버로 교체하십시오.


Giri

명령줄에서 자격 증명을 제공하는 것은 좋은 생각이 아닙니다. 위의 답변은 훌륭하지만 언급을 무시합니다.

 mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql

여기서 etc/myhost.cnf는 호스트, 사용자, 암호를 포함하는 파일이며 명령줄에 암호가 노출되지 않도록 합니다. 여기 샘플이 있습니다,

 [client] host=hostname.domainname user=dbusername password=dbpassword

ChuckCottrill

데이터베이스로 가져오기:

mysql -u 사용자 이름 -p 데이터베이스 이름 < /파일 경로/파일 이름.sql

데이터베이스에서 내보내기:

mysqldump -u 사용자 이름 -p 데이터베이스 이름 > /파일 경로/파일 이름.sql

이 명령 후에 MySQL 암호를 묻는 프롬프트가 표시됩니다.


NeeruKSingh

vladkras의 답변과 유사하게 MySQL에서 명령줄을 사용하여 SQL 파일을 가져오는 방법은 무엇입니까? .

나를 위한 주요 차이점:

  1. 데이터베이스가 먼저 존재해야 합니다.
  2. -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을 실행하고 있습니다.


jozxyqk

참고로 저는 비밀번호 없이 기본 root +를 사용했습니다. 이전의 모든 답변에서 작동하지 않았습니다.

  • 모든 권한과 암호를 가진 새 사용자를 만들었습니다. 그것은 효과가 있었다.

  • -ppassword 공백 없이.


Paul Leclerc

출처 : http:www.stackoverflow.com/questions/17666249/how-do-i-import-an-sql-file-using-the-command-line-in-mysql

반응형