mysql로 ​​데이터를 내보내는 방법. MySQL 데이터베이스를 덤프하고 데이터를 콘솔로 내보냅니다. phpMyAdmin을 사용하여 SQL 파일을 MySQL 데이터베이스로 가져오기

대용량 데이터베이스를 서버로 가져오는 방법에 대한 질문을 자주 받습니다. MySQL 데이터. phpMyAdmin은 기본적으로 가져온 데이터베이스의 크기에 제한이 있는 것으로 알려져 있습니다.

덤프가 허용 가능한 한도보다 훨씬 크지 않은 경우 여러 부분으로 분할하고 여러 단계로 가져올 수 있습니다. 예를 들어 제한이 2MB이고 데이터베이스 크기가 5-10MB인 경우 이는 타당합니다. 100MB 데이터베이스를 50개 부분으로 "절단"하는 것은 노동 집약적이고 시간 소모적인 프로세스임이 분명합니다.

이 문제를 해결하기 위한 몇 가지 옵션이 있습니다.

웹 서버 구성 편집

VDS/VPS에서는 이에 대한 특별한 문제가 없으며 구성을 수정하기만 하면 됩니다. 즉, php.ini에서 서버에 업로드되는 파일에 대해 허용되는 최대값을 늘리고, 최대 크기 POST 메서드를 사용하여 전송된 파일의 경우:

Post_max_size = 2000M upload_max_filesize = 2000M

또한 데이터베이스가 매우 큰 경우 허용되는 최대 스크립트 실행 시간을 늘려야 합니다.

Max_execution_time = 32000 max_input_time = 32000

그리고 만일을 대비해 허용되는 RAM 크기를 늘릴 수 있습니다.

메모리 제한 = 512M

변경 후에는 반드시 웹 서버를 다시 시작하세요.

이 방법은 가상 호스팅에 적합하지 않다는 것이 분명합니다. 왜냐하면... 이는 구성을 편집하는 기능을 의미하지 않습니다.

사이펙스 덤퍼

당신이 사용할 수있는 타사 소프트웨어. 주목할만한 첫 번째 응용 프로그램은 Sypex Dumper입니다.

수년 전에 처음으로 이 제품을 사용하고 그 모든 기능과 장점을 인식했기 때문에 "필수 제품"이라고 자신 있게 말할 수 있습니다. Sypex 덤퍼 - 서버 애플리케이션 PHP에서는 설치가 필요하지 않습니다. 예를 들어 sxd 디렉토리의 사이트 루트에 복사하고 브라우저에서 http://Your_Site/sxd/로 호출하면 충분합니다. 먼저 데이터베이스 덤프를 백업 디렉터리에 배치해야 한다는 점은 주목할 가치가 있습니다. 스크립트를 초기화하면 데이터베이스 연결을 위한 인증 패널이 표시됩니다. 사용자 이름과 비밀번호를 입력하세요. 호스트와 포트는 구체적인 경우에만 선택 사항입니다.

승인 후 데이터베이스 가져오기로 직접 이동할 수 있습니다. 현장에서 "데이터 베이스"귀하가 연결된 데이터베이스가 선택되고 해당 필드에서 "파일"이전에 백업 디렉터리에 업로드한 덤프가 표시됩니다.

대부분의 경우 없음 추가 세팅더 이상 필요하지 않으며 "실행" 버튼을 클릭하여 가져오기를 안전하게 시작할 수 있습니다. 가져오기는 데이터베이스 크기와 인터넷 연결 속도에 따라 다소 시간이 걸릴 수 있습니다. 가져오는 동안 어떤 테이블을 가져오고 있는지 확인할 수 있습니다. 이 순간데이터베이스에. 스크립트가 완료되면 실행 로그가 표시됩니다. 다음과 같이 보입니다.

실제로 그게 전부입니다. 데이터베이스를 가져왔습니다!

콘솔

콘솔을 통한 가져오기는 고려하지 않습니다. 나 없이 콘솔을 사용하는 사람들은 데이터베이스를 가져오는 방법을 알고 있다고 생각합니다. ㅏ 일반 사용자특별한 훈련 없이는 거기에 가지 않는 것이 좋습니다. 일부 명령을 실행하면 서버 전체가 충돌하는 등 심각한 결과를 초래할 수 있습니다.

마지막으로

나는 Sydex Dumper가 유일하고 올바른 해결책이라고 말할 수는 없습니다. 사용자에게 특정 지식과 서버 설정에 대한 적절한 액세스 권한이 필요한 다른 더 우아한 방법이 있습니다.

그러나 공유 호스팅 환경에서 Sydex Dumper는 확실히 없어서는 안 될 조수가 될 것입니다.

내 전보를 구독하고 사이트에 없는 자료를 포함하여 새로운 자료를 가장 먼저 받아보세요.

이 강의에서는 다음과 같은 중요한 문제를 다룹니다. 데이터베이스 내보내기그리고 데이터베이스 가져오기 MySQL. 데이터베이스를 내보내는 이유가 무엇인지 물어볼 수도 있습니다. 일반적으로 이는 데이터베이스를 백업하기 위한 목적으로 수행되므로 만일의 경우에 대비하여 항상 가까이에 있습니다. 결국 호스팅 사고와 같은 불가항력적인 상황에서 데이터 손실이 발생할 수 있는 사람은 아무도 없습니다. 또 다른 예로는 귀하의 사이트에 해를 끼치려는 해커의 공격이 있을 수 있습니다. 실제로 그러한 예는 많이 있을 수 있습니다.

데이터베이스 가져오기는 현재 호스팅에 데이터베이스를 "다시 업로드"해야 하거나 다른 호스팅으로 이동할 때 사용됩니다. 이는 웹마스터가 실제로 수행하는 경우도 많습니다.

우리 스스로 데이터베이스 내보내기그리고 데이터베이스 가져오기- 작업은 간단합니다. 남은 생애 동안 구현 알고리즘을 기억하려면 이러한 작업을 한 번 수행하는 것이 좋습니다. 예제를 통해 이 모든 작업이 어떻게 수행되는지 살펴보겠습니다.

데이터베이스를 내보내려면 호스팅 관리 패널로 이동한 다음 데이터베이스 섹션인 MySQL 데이터베이스로 이동해야 합니다.

내보내려는 데이터베이스를 선택합니다(phpMyAdmin으로 이동). 안에 이 예에서는데이터베이스 이름은 "cl209038"입니다.

1) 첫 번째 경우에는 “Fast”를 선택하고 형식은 SQL로 두고 “OK” 버튼을 누릅니다. 결과적으로 데이터베이스 사본이 컴퓨터에 다운로드됩니다.

2) 두 번째 경우에는 “Normal”을 선택합니다. 데이터베이스 내보내기 설정이 포함된 페이지가 나타납니다. 아래와 같이 모든 테이블을 선택하고 인코딩 및 압축 수준을 선택합니다. 나머지는 일반적으로 변경할 필요가 없습니다. “확인” 버튼을 클릭하면 데이터베이스가 컴퓨터로 내보내집니다.

보시다시피 그게 전부입니다. 데이터베이스 내보내기 MySQL은 어려운 작업이 아닙니다.

데이터베이스를 가져오려면 호스팅 관리 패널로 이동하여 MySQL 데이터베이스 섹션으로 이동해야 합니다. 여기에는 두 가지 옵션이 있습니다. 새 데이터베이스를 생성하거나 기존 데이터베이스로 내보내야 합니다.

예를 들어 사이트를 다른 호스팅으로 이동하는 경우 데이터베이스를 생성해야 합니다. 여전히 동일한 호스팅이 있고 데이터베이스가 이미 생성된 경우 간단히 이 데이터베이스를 선택하고 데이터를 해당 데이터베이스에 "다시 업로드"할 수 있습니다. 물론 삭제한 다음 새(비어 있는) 항목을 만들어 업로드할 수도 있습니다.

1) 데이터베이스가 이미 존재합니다. 데이터베이스 복사본을 가져올 데이터베이스를 선택합니다. 데이터베이스 가져오기 메뉴가 나타납니다.

가져오려는 데이터베이스 복사본 파일을 선택합니다. 필요한 경우 데이터베이스의 인코딩과 형식을 변경할 수 있습니다. 다음으로 “확인” 버튼을 클릭하세요. 가져온 후 시스템은 모든 것이 올바르게 진행되었는지 또는 프로세스 중에 오류가 발생했는지 알려줍니다. 오류가 발생하면 호스팅에서 데이터베이스를 삭제한 다음 빈 데이터베이스를 만들고 데이터베이스를 다시 가져올 수 있습니다.

2) 새로운 데이터베이스를 생성합니다. 호스팅 관리 패널로 이동하여 MySQL 데이터베이스가 있는 섹션을 선택하세요. MySQL 데이터베이스 관리에 들어갑니다.

원하는 데이터베이스 이름과 비밀번호를 지정합니다. “만들기” 버튼을 클릭하세요. 결과적으로 새(빈) 데이터베이스가 생성되어야 합니다. 이 데이터베이스로 이전에 저장한 데이터베이스 복사본을 가져와야 합니다.

이것이 MySQL 데이터베이스 내보내기 및 가져오기에 대해 제가 말씀드리고 싶은 전부입니다. 이러한 질문과 관련해 어려움이 있으면 이 강의에 대한 의견을 적어주세요.

이 기사에서는 데이터베이스를 가져오는 방법과 php.ini의 설정을 변경하여 대규모 데이터베이스를 가져올 때 발생하는 문제를 해결하는 방법이라는 두 가지 질문을 고려할 것입니다.

아시다시피, 데이터 백업은 어떤 이유로 갑자기 사이트 운영이 중단되는 경우 웹사이트를 복원할 수 있도록 보장합니다. 백업에서 웹사이트를 복원하는 방법은 무엇입니까? 여러 가지 방법이 있는데, mysql 데이터베이스를 phpMyAdmin으로 가져오는 방법을 살펴보겠습니다. 데이터베이스 가져오기 프로세스를 시작하기 전에 파일을 가져올 데이터베이스에서 모든 테이블을 삭제해야 합니다.

테이블을 삭제하려면 로그인하세요. 홈페이지 phpMyAdmin을 실행하고 다음을 수행합니다.


2 - 모두 표시를 클릭합니다.
3 - 드롭다운 메뉴에서 삭제를 선택하고 확인을 클릭합니다.

이제 mysql 데이터베이스 가져오기를 시작할 수 있습니다. 이렇게 하려면 다음 단계를 따르세요.

1 - 원하는 데이터베이스를 선택합니다.
2 - 다음으로 가져오기 탭을 엽니다. 상위 메뉴;
3 - 찾아보기를 통해 찾기 백업 복사본데이터베이스와 함께 확인을 클릭하십시오.

모든 작업을 올바르게 수행했다면 가져오기가 성공했다는 메시지가 phpMyAdmin 창에 나타납니다.

대규모 mysql 데이터베이스 가져오기

웹마스터는 대규모 mysql 데이터베이스를 가져올 때 종종 문제에 직면합니다. 문제는 PHPMyAdmin에서 데이터베이스 덤프 다운로드가 업로드된 파일의 크기에 의해 제한되며 기본적으로 이 크기는 2MB(2,048KB)를 초과할 수 없다는 사실 때문입니다. 대용량 데이터베이스의 덤프를 다운로드하려고 하면 "다운로드 파일 크기가 너무 큽니다..." 등의 오류 메시지가 나타납니다.

대규모 데이터베이스의 덤프를 가져오는 한 가지 방법을 살펴보겠습니다. 가져오기 파일 크기 제한은 PHP 구성에 따라 결정됩니다. PHP 구성 설정은 php.ini 파일에 지정됩니다. 이는 대규모 데이터베이스를 가져오려면 php.ini 구성 파일에서 업로드된 파일의 최대 크기를 변경해야 함을 의미합니다.

php.ini 파일은 어디에 있나요? php.ini 파일의 경로는 다음과 같이 계산할 수 있습니다.

  • info.php 파일을 생성하고 그 안에 다음 코드를 넣습니다.;
  • 생성된 파일을 사이트의 루트 폴더(www, public_html)에 업로드합니다.
  • 안에 주소 표시 줄브라우저에 http://your_site/info.php 주소를 입력하세요.
  • 열리는 창에서 로드된 구성 파일을 찾으세요. 여기에 파일 경로가 표시됩니다.

대규모 mysql 데이터베이스를 가져오려면 PHPMyAdmin에서 php.ini 지시어를 변경해야 합니다.

php.ini 파일이 발견되었습니다. 이제 남은 것은 파일을 편집하거나 아래와 같이 파일의 여러 지시문을 변경하는 것입니다.

스크립트를 완전히 로드하는 데 걸리는 최대 시간(초):
max_execution_time = 60
스크립트가 모든 데이터를 수신하도록 지정된 최대 시간(초):
max_input_time = 90
스크립트가 사용할 수 있는 최대 메모리 양:
memory_limit = 128M
업로드된 파일의 최대 허용 크기:
upload_max_filesize = 200M
PHP가 허용하는 전송 데이터의 최대 크기:
post_max_size = 180M

php.ini에서 위 지시문을 변경하여 다음을 통해 가져올 수 있었습니다. PHPMyAdmin 데이터베이스데이터 볼륨은 최대 180M입니다.

데이터베이스 덤프를 가져오려면 다음을 사용할 수도 있습니다. 무료 버전 Sypex Dumper 프로그램. 덤퍼는 다음에 최적화되어 있습니다. 최대 속도약 800MB의 데이터베이스로 작업할 수 있습니다.

웹사이트를 로컬 서버에서 호스팅으로 전송할 때 필수 절차 중 하나는 데이터베이스 내보내기/가져오기입니다. 따라서 이 기사에서는 로컬 서버, 즉 웹 인터페이스에서 데이터베이스를 내보내고 가져오는 프로세스를 최대한 자세히 설명하려고 합니다. PHPMyAdmin호스팅용 버전 3.2.3.

가장 먼저 할 일은 실행이다. 로컬 서버, 이 경우에는 Denwer입니다. Denwer를 시작한 후 브라우저를 열고 브라우저 줄에 "http://localhost/tools/phpmyadmin"을 입력해야 합니다. 그러면 창이 열립니다.(그림 1)이전에 생성된 데이터베이스.

그림 1

다음으로 내보낼 데이터베이스를 선택해야 합니다. 제 경우에는 Mybd라는 데이터베이스입니다. 브라우저 창 왼쪽에 있는 데이터베이스를 클릭하여 선택할 수 있습니다. “데이터베이스를 선택해주세요” (그림 2).


그림 2

원하는 데이터베이스를 선택하면 데이터베이스 구조가 표시된 창이 열립니다. 상단 메뉴에 항목이 있습니다 "내보내다"이를 통해 데이터베이스를 컴퓨터로 내보낸 다음 호스팅으로 가져올 것입니다. 그래서 "내보내기"항목으로 이동하십시오. (그림 3).


그림 3

열리는 창에서 몇 가지 측정을 해야 합니다. (그림 4)즉, "내보내기" 블록에서 항목을 클릭하여 모든 데이터베이스 테이블을 선택해야 합니다. "모두 선택"항목 옆의 확인란을 선택하세요. SQL, 이 항목은 내보낼 파일 유형을 담당합니다. 또한 옆에 있는 확인란을 선택해야 합니다. "파일로 저장", 그러면 데이터베이스가 파일에 저장됩니다. 다른 설정은 필요 없고 버튼만 누르면 됩니다 "가다".

그림 4

이제 모든 작업을 올바르게 수행했다면 데이터베이스 파일이 컴퓨터에 다운로드되어야 합니다. 이 파일을 사용하여 데이터베이스를 호스팅으로 가져옵니다.

또한 제가 사용하는 인코딩을 변경하려면 파일 인코딩을 BOM 없이 UTF-8로 변경해야 합니다. 텍스트 에디터 메모장++(다운로드) . 이 프로그램을 사용하면 데이터베이스 파일을 열고 메뉴에서 "부호화"선택하다 “BOM 없이 UTF-8로 변환”(그림 5)을 누른 다음 저장하고 닫습니다.


그림 5

좋은 하루 되세요, 동료들 :)

오늘은 계속해서 콘솔과 MySQL 명령줄에서 MySQL을 사용하는 방법을 소개하겠습니다.

콘솔을 통해 MySQL 데이터로 기본 작업을 수행하고 백업하는 방법에 대한 기사를 이미 작성했습니다. MySQL 데이터베이스, 여기에 저장된 정보를 내보낼 수 있습니다.

이 이야기의 논리적 연속은 MySQL 데이터베이스 가져오기 작업을 사용하여 데이터베이스와 데이터베이스에 저장된 정보를 복원하는 것입니다. 그리고 중요한 것은 우리는 콘솔을 통해 모든 진정한 개발자의 도구를 사용하여 이 작업을 계속할 것이라는 점입니다.

phpMyAdmin을 통해 데이터베이스를 가져오기 위한 지침이 필요한 경우 관련 문서에서 찾을 수 있습니다. 현재 기사에서는 이에 대해 다시 설명하고 싶지 않습니다. 특히 오늘의 자료는 콘솔을 통해 MySQL 데이터베이스를 가져오는 데만 전념할 것이기 때문입니다.

하지만 방법과 도구를 검토하기 전에 MySQL 데이터베이스 가져오기가 무엇인지, 그것이 어떤 것인지, 그리고 최선의 방법에 대해 몇 마디 말씀드리겠습니다.

MySQL 데이터베이스 가져오기: 무엇과 왜?

MySQL 데이터베이스 가져오기는 데이터베이스를 정보로 채우는 작업입니다. 이 경우 데이터 원본은 덤프 파일(내보내기 작업 중에 자동으로 생성된 다른 데이터베이스의 스냅샷 또는 특별히 준비된 SQL 스크립트)입니다.

MySQL 데이터베이스 가져오기 및 내보내기에는 두 가지 유형의 정보가 데이터베이스에 저장됩니다.

  1. 데이터베이스의 구조, 테이블 및 여기에 저장된 데이터(일반적으로 데이터베이스 덤프라고 함)
  2. 단순히 테이블에 저장되거나 다음을 사용하여 수집된 데이터 선택하다요청.

이 기사에서는 두 가지 옵션을 모두 논의합니다.

이미 언급한 것처럼 덤프에서 구조 및 저장된 모든 정보와 함께 MySQL 데이터베이스를 복원하려면 데이터베이스 덤프 파일이 필요합니다. 이 파일은 다음을 포함하는 확장자를 가진 텍스트 파일입니다(크기를 줄이기 위해 아카이브에 미리 압축할 수 있음). SQL 명령데이터베이스 자체와 테이블을 생성하고 정보로 채웁니다.

따라서 덤프에서 MySQL 데이터베이스를 복원하려면 파일에 포함된 명령을 실행해야 합니다.

정기적인 데이터 복구의 경우 이러한 합병증은 필요하지 않습니다. 사용 가능한 테스트 파일만 있으면 충분합니다. 이 파일의 정보는 데이터베이스 테이블과 동일한 방식으로 구성됩니다. 정보가 포함된 열의 수는 테이블 레코드 속성의 수에 해당합니다.

이러한 목적을 위해서는 일반 txt 파일, 분리될 데이터 또는 특수 스프레드시트 편집기에서 생성된 파일( 마이크로 소프트 오피스 xls, csv, odt 등 뛰어난 확장자를 갖춘 Excel, OpenOffice 등)

이러한 형식이 더 선호되는 이유는 다음과 같습니다. 생성 시 데이터 구분자는 편집자에 의해 자동으로 추가되므로 일반 텍스트 파일의 경우처럼 별도로 입력할 필요가 없습니다.

MySQL에 데이터 추가: 도구

MySQL 데이터베이스를 가져오는 도구와 관련하여 현재 세 가지 도구가 있다고 말할 수 있습니다.

모든 종류의 셸과 추가 기능을 사용하는 관점에서 가장 낮은 수준부터 시작하여 가장 높은 수준으로 끝나는 목록을 나열하겠습니다.

  1. 서버 콘솔 및 MySQL 명령줄;
  2. 언어 도구를 사용하여 MySQL에 데이터를 기록할 수 있도록 프로그래밍 언어로 작성된 스크립트.
  3. 데이터베이스 작업을 위한 시각적 인터페이스를 제공하는 기성 프로그램(동일한 phpMyAdmin, MySQL WorkBench, MySQL Manager 등).

도구의 순서는 누구에게도 문제가 되지 않을 것이라고 생각합니다. 왜냐하면... 프로그래밍 언어 도구는 일반적으로 MySQL 콘솔 명령을 기반으로 작동하며 프로그램은 스크립트를 기반으로 하거나 명령줄에서 MySQL과 직접 작동합니다.

어떤 식 으로든 콘솔은 모든 것의 최전선에 있으며 나머지 도구는 실제로 에뮬레이터입니다.

따라서 MySQL로 데이터를 가져올 때 콘솔을 사용하면 프로그래밍 언어 설정에 따라 설정된 다양한 제한 사항을 우회할 수 있습니다. 웹 서버그리고 프로그램 자체(그런데 항상 변경할 수는 없습니다).

이로 인해 콘솔을 통해 MySQL 데이터베이스를 더 빠르게 로드할 수 있을 뿐만 아니라 원칙적으로 이 작업이 가능해집니다. 스크립트 및 프로그램은 다운로드한 파일의 크기로 인해 최대 스크립트 실행 시간에 도달하거나 전혀 시작되지 않을 때 가져오기를 중단하는 경향이 있습니다.

phpMyAdmin을 통해 MySQL 데이터베이스에 대규모 덤프를 업로드하려고 시도한 모든 사람은 내가 말하는 내용을 이해한다고 생각합니다.

종종 이러한 제한은 MySQL 데이터베이스를 가져올 때 오류의 원인이 되지만 콘솔을 사용할 때는 결코 볼 수 없습니다.

물론 그것들은 일정하지 않고 변경될 수 있지만 이것은 일반 사용자에게는 해결되지 않을 수도 있는 추가적인 골칫거리입니다.

콘솔을 통해 MySQL 데이터베이스(구조 및 개별 데이터 모두)를 가져오도록 동기를 부여하셨기를 바랍니다.

그리고 이 긍정적인 측면에서 우리는 오랫동안 기다려온 방식으로 넘어가서 콘솔에서 데이터베이스로 데이터를 전송하는 방법과 명령을 고려합니다.

콘솔을 통해 덤프에서 MySQL 데이터베이스를 복원하는 방법은 무엇입니까?

따라서 콘솔에서 MySQL 덤프를 배포하려면 다음 두 가지 방법이 있습니다.

  1. 에서 명령을 사용하여 명령줄 MySQL;
  2. 서버 콘솔 자체에서.

순서대로 시작합시다.

따라서 를 통해 MySQL 데이터베이스 덤프를 기존 스토리지로 가져오려면 먼저 이를 실행하고 덤프를 업로드할 원하는 데이터베이스를 선택해야 합니다.

이러한 작업의 구현은 위에 링크된 문서에 자세히 설명되어 있으므로 이에 대한 설명이 필요하면 거기에서 가져오십시오. 두 번째 라운드에서는 복제하고 싶지 않습니다.

위의 작업을 완료한 후 MySQL Shell에 다음 명령을 입력합니다.

소스 path_and_dump_file_name;

우리에게 남은 것은 덤프에 포함된 작업 진행 상황에 대한 콘솔의 메시지를 연구하는 것입니다.

먼저 원하는 데이터베이스로 전환하지 않고 콘솔에서 MySQL 서버에 연결한 후 다음 명령을 사용하여 덤프를 가져올 수 있습니다.

MySQL -u 사용자 이름 -p 데이터베이스_이름< путь_и_имя_файла_дампа

그게 다야. 가장 중요한 것은 파일이 매우 큰 경우 가져오기가 완료될 때까지 기다리는 것입니다. 덤프 완료 여부는 서버 콘솔을 다시 사용할 수 있는 시점으로 판단할 수 있습니다.

사실 이게 단점이에요 이 방법전작에 비해 처음에는 가져오는 동안 데이터베이스에서 수행된 작업을 모니터링할 수 있지만 두 번째에서는 그렇지 않습니다.

덤프 파일이 아카이브에 압축되어 있으면 다운로드할 때 동시에 압축을 풀어야 합니다.

Linux에서는 다음과 같이 수행할 수 있습니다.

Gunzip > [archive_file_name.sql.gz] | mysql -u -p

안에 윈도우 표준콘솔에는 아카이브 압축을 풀 수 있는 유틸리티가 없으므로 추가로 설치해야 합니다.

보시다시피 콘솔을 통해 MySQL 덤프를 가져오는 것은 하나의 명령으로 수행되는 매우 간단한 작업입니다. 따라서 이 절차를 수행하기 위해 개발자가 될 필요는 없습니다.

갑자기 서버 콘솔을 시작하는 방법을 모르는 경우 이전에 이미 게시한 링크인 MySQL 명령줄에 대한 기사에서 이 정보를 찾을 수 있습니다.

그런데 설명된 방법을 사용하면 전체 데이터베이스가 아닌 MySQL 테이블을 가져올 수도 있습니다. 이 경우 업로드하는 덤프에는 덤프를 생성하고 데이터를 채우는 작업이 포함되어야 합니다.

콘솔의 파일에서 MySQL 데이터베이스로 데이터 로드

콘솔의 덤프에서 MySQL 데이터베이스를 복원하는 방법에 대해 이야기했습니다. 이제 동일한 방식으로 xls 및 csv를 포함한 파일에서 MySQL 데이터베이스로 데이터를 가져올 수 있는 방법을 알아낼 때입니다.

이 작업을 위해 이전 사례와 동일한 두 가지 도구인 MySQL 명령줄과 서버 콘솔이 있습니다.

다시 순서대로 리뷰를 시작하겠습니다.

따라서 MySQL 명령줄에서 파일을 가져오려면 해당 파일을 다시 실행하고 데이터가 로드될 데이터베이스로 이동합니다.

LOAD DATA INFILE "path_and_name_of_dump_file" INTO TABLE `database_table` COLUMNS TERMINATED BY "," ENCLOSED BY "\"" 행 TERMINATED BY "\n";

MySQL 서버가 옵션으로 시작된 경우 이를 잊지 마십시오. --보안 파일-priv(이런 경우가 자주 발생합니다. MySQL을 사용하여 WAMP/MAMP 어셈블리에 포함된 배포판), 시스템 변수를 고려하여 파일 이름을 지정해야 합니다. secure_file_priv.

MySQL Shell로 이동하지 않고 MySQL 데이터베이스를 서버 콘솔로 가져오려면 다음 유틸리티가 필요합니다. mysql가져오기, MySQL 배포판에 포함되어 있으며 다음 호출이 포함됩니다.

mysqlimport –u 사용자 이름 –p 데이터베이스_이름 이름_및_경로_to_import_file

이 유틸리티 SQL 명령과 유사합니다. 데이터 입력 파일 로드, 명령줄에만 해당됩니다. 그러나 호출 매개변수 중 파일의 데이터가 로드될 테이블이 아닌 이유는 무엇입니까?

사실 mysqlimport는 단순히 물리적으로 이 매개변수. 대신, 데이터가 로드될 테이블의 이름이 가져온 파일의 이름에 나타나야 합니다.

저것들. 다음에서 가져오려는 경우 엑셀 테이블 MySQL 테이블로 사용자, 그러면 파일이 호출되어야 합니다 사용자.xls.

이미 언급한 것처럼 가져온 파일의 확장자는 무엇이든 가능합니다.

mysqlimport를 사용하면 여러 개를 다운로드할 수도 있습니다. xls 파일또는 MySQL의 csv. 데이터가 대상에 도달하려면 이전 예와 같이 파일 이름과 데이터베이스 테이블 이름도 일치해야 합니다.

갑자기 가져온 파일의 열이 데이터베이스 테이블의 열과 동일한 순서가 아닌 경우 순서를 명확히 하기 위해 다음 형식으로 —columns 옵션을 사용해야 합니다.

Mysqlimport –u 사용자 이름 –p 데이터베이스_이름 --열 열1, ​​열2, ... 이름_및_경로_to_import_file

당연히 내 예에서는 고려하지 않았습니다. 전체 목록 mysqlimport 매개변수, 왜냐하면 그 중 일부는 매우 구체적이며 실제로는 극히 드물게 사용됩니다.

이에 대해 숙지하고 싶다면 여기에서 전체 목록을 확인할 수 있습니다 - https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

덤프에서 MySQL 데이터베이스로 데이터를 로드하는 기능

대규모 MySQL 데이터베이스를 가져오는 프로세스를 더 빠르게 진행하려면 다음을 사용하여 데이터베이스 덤프를 생성해야 합니다. 특별 옵션 MySQL 데이터베이스 내보내기에 대한 이전 기사에서 작성한 mysqldump 명령, 이전 텍스트에 게시한 링크입니다.

불행하게도 MySQL 데이터베이스 가져오기 명령 자체에는 그러한 옵션이 없습니다.

유일한 것은 대규모 데이터베이스 덤프를 로드할 때 속도를 높이려면 다음 기능을 사용할 수 있다는 것입니다.

1. 덤프 파일을 엽니다(바람직하게는 파일 관리자, 왜냐하면 일반 편집자는 대용량 파일에 압도당할 수 있습니다.)

2. 파일 시작 부분에 다음 줄을 작성합니다.

SET foreign_key_checks = 0; SET UNIQUE_CHECKS = 0; 자동 커밋 설정 = 0;

메모! 이미 거기에 있거나 주석 처리되었을 수 있습니다(덤프를 만드는 많은 프로그램이 자동으로 추가할 수 있음).

3. 파일 끝에 반대 작업을 작성합니다.

SET foreign_key_checks = 1; SET UNIQUE_CHECKS = 1; 자동 커밋 설정 = 1;

그런데 이러한 명령은 가져오기 프로세스 속도를 높이는 데 도움이 될 뿐만 아니라 이를 가능하게 해줍니다.

사실 MySQL 데이터베이스를 가져오기 위해 덤프 파일을 본 적이 있다면 로드된 테이블의 구조를 설정하는 작업이 다음과 같다는 것을 알 수 있습니다.

`클라이언트`가 존재하는 경우 테이블 삭제; CREATE TABLE `클라이언트` (...);

저것들. 가져오는 테이블과 동일한 이름을 가진 테이블을 데이터베이스에서 검색하여 발견되면 해당 테이블을 삭제하고 새로 생성합니다.

그리고 갑자기 기존 테이블이 외래 키로 다른 테이블에 연결되면 전체 로딩이 실패합니다.

따라서 외래 키 및 기타 존재 여부 확인을 비활성화하면 MySQL 데이터베이스 가져오기 프로세스가 성공적으로 완료된다는 것을 보장할 수 있습니다.

CSV를 MySQL 데이터베이스 및 기타 파일로 가져오는 기능

MySQL 데이터베이스로 데이터를 로드할 때 텍스트 파일외래 키를 비활성화해야 할 수도 있습니다.

게다가 이전 상황과 달리 이 경우에는 파일에 지시어를 쓸 수 없습니다. 여기에 포함된 SQL 명령은 허용 및 실행되지 않습니다.

MySQL 데이터베이스 내보내기에 관한 이전 기사에서 MySQL 명령줄에서 다음 작업을 사용하여 이 작업을 수행하는 방법을 이미 언급했습니다.

SET FOREIGN_KEY_CHECKS=0;

그러나 나는 거기에서 MySQL 시스템 변수가 FOREIGN_KEY_CHECKS전역 및 세션(현재 세션에 대한)이라는 두 가지 의미를 갖습니다.

MySQL 변수의 전역 값은 MySQL 서버가 다시 시작될 때까지 MySQL 서버의 모든 작업에 대해 유효합니다. 그런 다음 변수 값이 재설정되고 기본값이 할당됩니다.

MySQL 시스템 변수의 세션 값은 사용자가 MySQL 서버에 세션하는 동안에만 설정됩니다. 세션 또는 세션은 클라이언트가 서버에 연결될 때 시작되며, 이때 고유한 세션이 할당됩니다. 연결 ID, 언제든지 발생할 수 있는 서버와의 연결이 끊어지면 종료됩니다(예: 시간 초과로 인해).

내가 이것을 기억하기로 결정한 이유는 무엇입니까?

왜냐하면 MySQL 쉘에 들어가지 않고 서버 콘솔을 통해 MySQL 데이터베이스에 파일을 로드하는 명령을 실행할 때 앞서 설명한 방법을 사용하여 외래 키 검사를 비활성화하면 작동하지 않는다는 것을 발견했기 때문입니다.

테이블에 외래 키가 있기 때문에 콘솔에 여전히 오류 메시지가 표시되었습니다.

그리고 위 명령이 전역 키가 아닌 세션 내 외래 키 존재 확인을 비활성화했기 때문에 발생했습니다. 표시된 방법 외에도 다음과 같이 수행할 수도 있습니다.

SET SESSION 변수_이름 = 변수_값; SET @@session.variable_name = 변수_값; SET @@변수_이름 = 변수_값;

위 명령에서 변수는 세션으로 명확하게 표시됩니다.

아, 로딩 중이었거든요 CSV 파일직접 연결하지 않고 서버 콘솔을 통해 MySQL 테이블에 MySQL 서버, 내 세션 변수 값이 작동하는 세션이 생성되지 않았습니다.

결국 FOREIGN_KEY_CHECKS를 전역으로 설정했고 가져오기가 성공했습니다.

다음 방법 중 하나로 이 작업을 수행할 수 있습니다.

SET GLOBAL 변수_이름 = 변수_값; SET @@global.variable_name = 변수_값;

값을 변경한 후에는 변수의 값을 검토하여 변경 사항이 적용되었는지 확인하는 것이 좋습니다. 세션 값과 전역 값을 동시에 표시하려면 다음 명령을 사용하십시오.

@@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks를 선택하세요.

이것으로 MySQL 데이터베이스 가져오기에 대한 오늘의 기사를 마칩니다. 의견에 대한 인상과 자신의 발전을 공유하십시오. 나는 많은 사람들이 당신의 경험에 관심을 가질 것이라고 생각합니다.

또 보자! 🙂

추신: 웹사이트가 필요하거나 기존 웹사이트를 변경해야 하지만 이에 대한 시간이나 욕구가 없다면 제가 서비스를 제공할 수 있습니다.

5년 이상의 경력전문적인 웹사이트 개발. 작업 PHP, 오픈카트,