MySQL Workbench File Import Error in Mac
Page content
개요
- MySQL Workbench에서 File을 불러올 때 에러가 발생했을 때 대처 요령을 소개한다.
- Workbench에서 File을 불러올 때 가끔 아래와 같은 아래가 발생하곤 한다.
- 해결방법은 MySQL Shell Script에서 직접 파일을 불러오는 방식이다.
MySQL 재접속
- 기존에 Workbench에 접속해 있었다면 우선 종료를 한다.
-
재접속 전 Edit Connection 버튼을 클릭한다.
-
Advanced Tab을 클릭한다.
- Others 메뉴에서
OPT_LOCAL_INFILE=1
을 입력한다. - Test Connection 버튼을 클릭하여 정상적으로 접속이 되는지 재 확인한다.
- Others 메뉴에서
- 이제 재 접속을 하면 Workbench의 설정은 완료가 되었다.
Schema 및 Table 생성
-
마우스 우클릭 후 스키마를 생성한다.
-
스키마 명은
mulcamp2
로 명명했다. -
제대로 설정되었는지 재확인한다.
- 테이블을 생성하도록 한다.
- 테이블이 미리 생성되어있지 않으면 csv 파일을 불러올 수 없다.
- 첫번째 줄은 앞서 생성된 스키마를 사용하겠다는 뜻이다.
- dataset4라는 테이블을 생성한다.
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)
- 데이터 불러오기 위해 아래 명령어를 추가한다.
- 경로는 절대경로를 입력한다.
- TABLE 지정은 스키마명과 같이 입력한다.
- 그 외 설명은 공식 문서를 참조한다.
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
명령어를 활용하여 실제 조회가 되는지 확인해본다.