MySQL Workbench File Import Error in Mac

Page content

개요

  • MySQL Workbench에서 File을 불러올 때 에러가 발생했을 때 대처 요령을 소개한다.
  • Workbench에서 File을 불러올 때 가끔 아래와 같은 아래가 발생하곤 한다.

Screenshot 2023-10-04 at 11.33.28 AM.png

  • 해결방법은 MySQL Shell Script에서 직접 파일을 불러오는 방식이다.

MySQL 재접속

  • 기존에 Workbench에 접속해 있었다면 우선 종료를 한다.

Screenshot 2023-10-04 at 11.35.16 AM.png

  • 재접속 전 Edit Connection 버튼을 클릭한다.

    Screenshot 2023-10-04 at 11.36.03 AM.png

  • Advanced Tab을 클릭한다.

    • Others 메뉴에서 OPT_LOCAL_INFILE=1 을 입력한다.
    • Test Connection 버튼을 클릭하여 정상적으로 접속이 되는지 재 확인한다.

    Screenshot 2023-10-04 at 11.36.43 AM.png

Screenshot 2023-10-04 at 11.38.43 AM.png

  • 이제 재 접속을 하면 Workbench의 설정은 완료가 되었다.

Schema 및 Table 생성

  • 마우스 우클릭 후 스키마를 생성한다.

    Screenshot 2023-10-04 at 11.40.21 AM.png

  • 스키마 명은 mulcamp2로 명명했다.

    Screenshot 2023-10-04 at 11.41.18 AM.png

  • 제대로 설정되었는지 재확인한다.

Screenshot 2023-10-04 at 11.42.02 AM.png

Screenshot 2023-10-04 at 11.42.28 AM.png

  • 테이블을 생성하도록 한다.
    • 테이블이 미리 생성되어있지 않으면 csv 파일을 불러올 수 없다.
    • 첫번째 줄은 앞서 생성된 스키마를 사용하겠다는 뜻이다.
    • dataset4라는 테이블을 생성한다.

Screenshot 2023-10-04 at 11.45.37 AM.png

USE mulcamp2;

CREATE TABLE `dataset4` (
  `PassengerId` int DEFAULT NULL,
  `Survived` double DEFAULT NULL,
  `Pclass` int DEFAULT NULL,
  `Name` text,
  `Sex` text,
  `Age` double DEFAULT NULL,
  `SibSp` int DEFAULT NULL,
  `Parch` int DEFAULT NULL,
  `Ticket` text,
  `Fare` double DEFAULT NULL,
  `Cabin` text,
  `Embarked` text,
  `WikiId` int DEFAULT NULL,
  `Name_wiki` text,
  `Age_wiki` double DEFAULT NULL,
  `Hometown` text,
  `Boarded` text,
  `Destination` text,
  `Lifeboat` text,
  `Body` text,
  `Class` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

MySQL Shell

  • M1에서 터미널을 열고 접속을 할 것이다.

(옵션) 환경변수 설정

  • 설치 시, 환경변수를 미 지정했다면, 아래와 같이 설정한다.
    • 버전은 각자 확인해야 한다. (/usr/local 에서 확인)
export PATH=${PATH}:/usr/local/mysql-8.0.34-macos13-arm64/bin/
source ~/.bash_profile

접속 및 설정

  • MySQL Shell 에 접속한다.
$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 32
Server version: 8.0.34 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

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>
  • 위 화면에서 아래와 같이 실행한다.
    • OFF가 되어 있을 가능성이 높다.
mysql> show global variables like 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | OFF   |
+---------------+-------+
1 row in set (0.00 sec)
  • 이런 경우 ON으로 변경해준다.
mysql> set global local_infile=true;
Query OK, 0 rows affected (0.00 sec)
  • 다시 실행하면 아래와 같이 나올 것이다.
mysql> show global variables like 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
1 row in set (0.01 sec)
  • 데이터 불러오기 위해 아래 명령어를 추가한다.
mysql> LOAD DATA LOCAL INFILE "/Users/evan/Downloads/archive/full.csv" INTO TABLE mulcamp2.dataset4 FIELDS TERMINATED BY "," LINES TERMINATED BY "\n" IGNORE 1 ROWS;
Query OK, 1309 rows affected, 7571 warnings (0.08 sec)
Records: 1309  Deleted: 0  Skipped: 0  Warnings: 7571

데이터 확인

  • SELECT * FROM dataset4 명령어를 활용하여 실제 조회가 되는지 확인해본다.

Screenshot 2023-10-04 at 5.24.17 PM.png