터미널에서 MySQL을 사용하여 데이터베이스를 가져 오려면 어떻게해야합니까?


373

터미널에서 mysql로 ​​데이터베이스를 가져 오는 방법은 무엇입니까?

정확한 구문을 찾을 수 없습니다.

답변:


761

Linux 또는 Windows 콘솔을 사용한다고 가정합니다.

비밀번호 묻기 :

mysql -u <username> -p <databasename> < <filename.sql>

비밀번호를 직접 입력하십시오 (보안되지 않음).

mysql -u <username> -p<PlainPassword> <databasename> < <filename.sql>

예:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

또한보십시오:

4.5.1.5. 텍스트 파일에서 SQL 문 실행


참고 : Windows를 사용 cd하는 경우 명령을 실행하기 전에 CMD 내의 MySQL / bin 디렉토리로 디렉토리를 변경해야합니다.


139
비밀번호를 CLI 매개 변수로 전달해서는 안됩니다. 대신 -p 옵션을 지정하고 프롬프트 후에 수동으로 입력하십시오.
St.Woland

13
쉘로 입력하려는 경우 -p와 비밀번호 사이에 공백이 없습니다.
Kethryweryn

8
mysql -u username -h hostname -ppassword databasename <터미널에서 원격 호스트에 대한 filename.sql
Shaik Rilwan

8
이미 mysql 명령 프롬프트 (mysql>) 안에 있다면 source full_path_of_file을 입력하십시오 (참고 : 가져 오기 전에 USE DATABASE_NAME 명령으로 데이터베이스를 선택하십시오).
Ankit Sharma

3
@Pekka 웃,를 사용 source하면 정보 메시지 ( "행 영향을 받음" )와 오류 메시지를 볼 수 있습니다. 그러나 솔루션을 사용하면 메시지를 < filename.sql어떻게 볼 수 있습니까?
Pacerier

141

창문에 적합한 방법 :

  1. 콘솔을 열고 대화식 MySQL 모드를 시작하십시오

  2. use <name_of_your_database>;

  3. source <path_of_your_.sql>


2
왜 우리는 필요하지 않습니다; 파일 이름 뒤에?
Nabeel Khan

6
@NabeelKhan 대부분의 SQL 문은 문 ;끝 에서을 요구 하지만 USE및을 포함한 몇 가지 예외가 있습니다 SOURCE.
Simon East

1
파일을 파이핑하는 것보다 빨리 수행되는지 궁금합니다 (허용 된 답변과 같이). 내 의심은 그렇습니다 .
사이먼 이스트

이것은 20 분 안에 HeidiSQL ... 3GB를 가져 오는 것보다 훨씬 빠릅니다!
kmdsax

궁금한. 내가 제거했을 때;source 명령이 성공적으로 실행되었다. 그렇지 않기 전에.
Nikos

33

mysql -u <USERNAME> -p <DB NAME> < <dump file path>

-u -사용자 이름

-p -비밀번호를 묻습니다

예 : mysql -u root -p mydb < /home/db_backup.sql

-p가 앞에 오는 암호를 제공 할 수도 있지만 보안상의 이유로 암시 할 수는 없습니다. 암호는 마스크 자체가 아닌 명령 자체에 나타납니다.


2
이것은 내가 찾고있는 대답입니다. "<"이것은 내가 남긴 표시입니다.
Pravinraj Venkatachalam

mydb가 없으면 mysqldump 명령을 실행할 때 동적으로 작성하는 방법은 무엇입니까?
अक्षय परूळेकर

12

var / www / html에서 직접

mysql -u username -p database_name < /path/to/file.sql

mysql 내에서 :

mysql> use db_name;
mysql> source backup-file.sql



6

000-tableA.sql, 001-tableB.sql, 002-tableC.sql이라는 파일 이름으로 나눌 때 일반적으로이 명령을 사용하여 SQL 데이터를로드합니다.

for anyvar in *.sql; do <path to your bin>/mysql -u<username> -p<password>  <database name> < $anyvar; done

OSX 쉘에서 잘 작동합니다.


5

명령 줄에서로드하는 방법

설명:

  1. 먼저 데이터베이스를 작성하거나 기존 데이터베이스를 사용하십시오. 제 경우에는 기존 데이터베이스를 사용하고 있습니다

  2. <name of database> = ClassicModels내 경우에는 연산자를 사용하여 데이터베이스를로드하십시오 <.database = sakila-data.sql

  3. show table을 실행하면 보시다시피 테이블 목록을 얻습니다.

참고 : 내 경우 에는 같은 것을 다시로드하려고하기 때문에 오류 1062발생 했습니다.


5
mysql -u username -ppassword dbname < /path/file-name.sql

mysql -u root -proot product < /home/myPC/Downloads/tbl_product.sql

터미널에서 이것을 사용하십시오


5

아래 명령은 ubuntu 16.04에서 작동하지만 다른 Linux 플랫폼에서 작동하는지 확실하지 않습니다.

SQL 파일 내보내기 :

$ mysqldump -u [user_name] -p [database_name] < [database_name.sql]  

예 : mysqldump -u root -p max_development> max_development.sql

SQL 파일 가져 오기 :

$ mysqldump -u [user_name] -p [database_name] > [file_name.sql]

Example: mysqldump -u root -p max_production < max_development.sql

참고 SQL 파일은 동일한 디렉토리에 있어야합니다.


5

터미널 열기

 mysql -u root -p

 eg:- mysql -u shabeer -p

그 후 데이터베이스 생성

 mysql> create database "Name";

 eg:- create database INVESTOR;

그런 다음 새 데이터베이스 "INVESTOR"를 선택하십시오.

 mysql> USE INVESTOR;

머신에서 SQL 파일의 경로를 선택하십시오.

 mysql> source /home/shabeer/Desktop/new_file.sql;

그런 다음 Enter 키를 누르고 모두 실행되면 잠시 기다립니다.

 mysql> exit

여기에 이미지 설명을 입력하십시오


4
  1. MySQL Command Line Client를 열고 비밀번호를 입력하십시오

  2. .sql 파일 데이터를 가져 오는 데 사용할 데이터베이스로 변경하십시오. 다음을 입력하여 수행하십시오.

    USE your_database_name
  3. 이제 실행할 .sql 파일을 찾으십시오.
    파일이 기본 로컬 C : 드라이브 디렉토리에 있고 .sql 스크립트 파일 이름이 currentSqlTable.sql인 경우 다음을 입력하십시오.

    \. C:\currentSqlTable.sql

    를 눌러 EnterSQL 스크립트 파일을 실행하십시오.


7
그림 1/2/3는 무엇입니까?
glglgl

4

언젠가 고군분투 한 후 https://tommcfarlin.com/importing-a-large-database/ 에서 정보를 찾았습니다.

  1. Mysql에 연결하십시오 (사용자 이름과 비밀번호 모두에 root를 사용하십시오).

    mysql -uroot -proot
  2. 데이터베이스에 연결하십시오 (빈 데이터베이스라고합니다 (확인 메시지가 표시되어야 함).

    connect emptyDatabase

3 소스 코드를 가져 와서 파일 이름이 mySource.sql이고 myUser라는 사용자 프로필 아래의 mySoureDb 폴더에 있다고 가정합니다.

source /Users/myUser/mySourceDB/mySource.sql

3

당신이 사용하는 경우 sakila-DB를 MySQL의 웹 사이트에서, 그것은 바로 아래에 언급 된 단계를 수행 Linux 플랫폼에서 아주 쉽게,의 zip 파일을 다운로드 한 후 sakila-DB를 , 압축을 풉니 다. 이제 sakila-schema.sql 파일 sakila-data.sql 파일이 있습니다.


  1. 터미널 열기
  2. 명령 mysql -u root -p <sakila-schema.sql을 입력하십시오.
  3. 명령 mysql -u root -p <sakila-data.sql을 입력하십시오.
  4. 이제 mysql -u root -p 명령을 입력 하고 암호를 입력하십시오. 이제 기본 데이터베이스를 사용 하여 mysql 시스템에 입력했습니다 .
  5. sakila 데이터베이스를 사용하려면이 명령을 사용하십시오 sakila;
  6. sakila-db에서 테이블을 보려면 show tables 명령을 사용하십시오.

추출 된 파일이 홈 디렉토리에 있는지주의하십시오 .


2

Ubuntu의 MySQL monitor 에서 이미 다음 구문을 사용했습니다.

mysql> use <dbname> -> USE 문은 MySQL에게 dbname후속 문에 대한 기본 데이터베이스 로 사용하도록 지시 합니다.

mysql> source <file-path>

예를 들면 다음과 같습니다.

mysql> use phonebook;

mysql> source /tmp/phonebook.sql;

중요 : SQL 파일이 mysql / tmp와 같이 액세스 있는 디렉토리에 있는지 확인하십시오


1

터미널에서 명령을 실행하기 전에 터미널에 MySQL이 설치되어 있는지 확인해야합니다.

다음 명령을 사용하여 설치할 수 있습니다.

sudo apt-get update
sudo apt-get install mysql-server

여기에 굴절 .

그 후 다음 명령을 사용하여 데이터베이스를 가져올 수 있습니다.

mysql -u <username> -p <databasename> < <filename.sql>

1

터미널에서 MYSQL의 데이터베이스를 가져 오는 가장 간단한 방법은 아래 언급 된 프로세스로 수행됩니다.

mysql -u root -p root database_name < path to your .sql file

내가 위에서하고있는 일은 :

  1. 내 사용자 이름과 비밀번호로 mysql에 입력 (여기서는 root& root)
  2. 암호를 입력 한 후 .sql 파일을 가져올 데이터베이스의 이름을 지정합니다. 데이터베이스가 이미 MYSQL에 존재하는지 확인하십시오
  3. 데이터베이스 이름 뒤에 <.sql 파일의 경로 가옵니다 . 예를 들어, 내 파일이 데스크탑에 저장된 경우 경로는/home/Desktop/db.sql

그게 다야. 이 모든 작업을 완료하면 Enter 키를 누르고 .sql 파일이 해당 데이터베이스에 업로드 될 때까지 기다리십시오.


0

-p와 비밀번호 사이에 공백이 없어야합니다.

mysql -u [dbusername] -p[dbpassword] [databasename] < /home/serverusername/public_html/restore_db/database_file.sql

나는 항상 그것을 사용하고 완벽하게 작동합니다. 이 질문을 해주셔서 감사합니다. 좋은 하루 보내세요 Njoy :)


또한 공유, 전용 및 클라우드 서버의 크론 작업 (예약 작업)에서이 설정을 설정하여 데이터베이스를 자동으로 재설정하거나 시간을 가져올 수 있습니다.
Kamlesh 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.