ME

주소 검색 구현 [1] - 우편주소 DB 저장 본문

웹개발/PHP

주소 검색 구현 [1] - 우편주소 DB 저장

본캐 2022. 12. 12. 05:06

 

 

0. 우편주소 DB 다운로드

 

 

 

우정사업본부

 

www.koreapost.go.kr

 

정보공개 > 우정데이터 제공 센터 > 우편번호DB > 우편번호 DB파일 바로가기 > 지역별 주소 DB 다운

 

 

 

 

1. 전역 변수 설정

 

 

mysql> SET GLOBAL local_infile=1;
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.00 sec)

 

 

local_infile 을 off -> on 으로 변경해준다.

 

 

 

 

 

2. --local-infile 변수 사

 

 

mysql> exit
Bye

 

 

 

mysql> mysql --local-infile -u test123 -p

 

 

--local-infile 변수를 사용해서 서버에 접속

 

 

 

 

 

3. 테이블 생성

 

 

CREATE TABLE IF NOT EXISTS `테이블명` (
`ZIP_NO` VARCHAR(5) NULL COMMENT '우편번호',
`SIDO` VARCHAR(20) NULL COMMENT '시도',
`SIDO_ENG` VARCHAR(40) NULL COMMENT '시도(영문)',
`SIGUNGU` VARCHAR(20) NULL COMMENT '시군구',
`SIGUNGU_ENG` VARCHAR(40) NULL COMMENT '시군구(영문)',
`EUPMYUN` VARCHAR(20) NULL COMMENT '읍면',
`EUPMYUN_ENG` VARCHAR(40) NULL COMMENT '읍면(영문)',
`DORO_CD` VARCHAR(12) NULL COMMENT '도로명코드',
`DORO` VARCHAR(80) NULL COMMENT '도로명',
`DORO_ENG` VARCHAR(80) NULL COMMENT '도로명(영문)',
`UNDERGROUND_YN` CHAR(1) NULL COMMENT '지하여부',
`BUILD_NO1` DECIMAL(5,0) NULL COMMENT '건물번호본번',
`BUILD_NO2` DECIMAL(5,0) NULL COMMENT '건물번호부번',
`BUILD_NO_MANAGE_NO` VARCHAR(25) NULL COMMENT '건물관리번호',
`DARYANG_NM` VARCHAR(40) NULL COMMENT '다량배달처명',
`BUILD_NM` VARCHAR(200) NULL COMMENT '시군구용건물명',
`DONG_CD` VARCHAR(10) NULL COMMENT '법정동코드',
`DONG_NM` VARCHAR(20) NULL COMMENT '법정동명',
`RI` VARCHAR(20) NULL COMMENT '리명',
`H_DONG_NM` VARCHAR(40) NULL COMMENT '행정동명',
`SAN_YN` VARCHAR(1) NULL COMMENT '산여부',
`ZIBUN1` DECIMAL(4,0) NULL COMMENT '지번본번',
`EUPMYUN_DONG_SN` VARCHAR(2) NULL COMMENT '읍면동일련번호',
`ZIBUN2` DECIMAL(4,0) NULL COMMENT '지번부번' ,
`ZIP_NO_OLD` VARCHAR(4) NULL COMMENT '구우편번호' ,
`ZIP_SN` VARCHAR(2) NULL COMMENT '우편일련번호'
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;

 

 

 

 

 

4. 우편주소 DB 파일 서버로 전송

 

 

scp "[전송할 파일 경로]" [유저명]@[ip주소]:[받을 경로]

 

 

 

 

윈도우 -> 우분투 로 보내기 때문에

 

 

 

 

윈도우 cmd 에서 작성

 

 

 

 

 

 

 

 

 

[Linux] scp 명령어로 (로컬↔서버) 파일 전송

scp는 SecureCopy의 약자로, 원격서버에 있는 파일과 폴더를 전송하거나 가져오기 위해 사용하는 명령어이다.ssh 원격 접속 프로토콜을 기반으로 하며, ssh와 동일한 22번 포트를 이용하기 때문에 passw

doheejin.github.io

 

 

 

 

 

 

5. DB 업로드

 

 

형식에 맞춰서 아래 코드를 입력해준다.

LOAD DATA LOCAL INFILE "[가져올 파일 경로]" INTO TABLE [테이블명] CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;

 

 

 

 

 

mysql> LOAD DATA LOCAL INFILE "/home/test123/seoul.txt" INTO TABLE seoul CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
Query OK, 534536 rows affected, 1 warning (4.54 sec)
Records: 534536  Deleted: 0  Skipped: 0  Warnings: 1

 

 

 

 

 

6. 확인

 

 

 

 

 

phpmyadmin 으로 확인했을 때  잘 들어간 것을 볼 수 있다.

 

 

 

※위 과정은 전부 mysql 서버에서 직접 한 거고, phpmyadmin에서 하면 오류 납니다.

 

2번 과정처럼 --local-infile 변수를 적용해서 mysql 서버에 로그인해야 하는데

 

phpmyadmin에선 적용을 하지 못해서 오류가 난다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides

ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

 

#2068 - LOAD DATA LOCAL INFILE is forbidden, check related settings like mysqli.allow_local_infile|mysqli.local_infile_directory or PDO::MYSQL_ATTR_LOCAL_INFILE|PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY

 

 

ERROR: Loading local data is disabled - this must be enabled on both the client and server sides

I don't understand the responses that others have provided to similar questions except for the most obvious ones, such as the one below: mysql> SET GLOBAL local_infile=1; Query OK, 0 rows affec...

stackoverflow.com

 

 

 

 

 

Comments