MySQL 5.7.x 설치

1. 그룹 및 사용자 생성

[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -g mysql mysql

 

2. /etc/my.cnf 파일 수정

[mysqld]
user = mysql
port = 3306
basedir=/mysql
datadir=/mysql/data
socket=/tmp/mysql.sock
innodb_data_file_path=ibdata1:12M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=50M

[mysqld_safe]
log-error=/var/log/mysqld.log

 

3. 설치 Binary 파일 압축 해제

[root@localhost /]# tar -zvxf /mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz

 

4. 심볼릭 링크 설정

[root@localhost /]# ln -s /mysql-5.7.15-linux-glibc2.5-x86_64/ mysql

[root@localhost /]# ll
lrwxrwxrwx 1 root root 36 2016-09-26 18:10 mysql -> /mysql-5.7.15-linux-glibc2.5-x86_64/

 

5. mysql data 디렉토리 생성

[root@localhost /]# mkdir /mysql/data

 

6. 디렉토리 권한 변경

[root@localhost /]# chown -R mysql.mysql /mysql
[root@localhost /]# chown -R mysql.mysql /mysql-5.7.15-linux-glibc2.5-x86_64/

 

7. mysql 초기화 작업 :5.7.6 이상 버전에서는 반드시 initialize를 수행 (mysql_install_db는 사용X)

[root@localhost mysql]# ./bin/mysqld –initialize –user=mysql
2016-09-26T10:03:04.170696Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
2016-09-26T10:03:04.794569Z 0 [Warning] InnoDB: New log files created, LSN=45790
2016-09-26T10:03:04.893132Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-09-26T10:03:04.987088Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 6ad0994c-83d0-11e6-bc46-000c297180b5.
2016-09-26T10:03:04.991179Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed’ cannot be opened.
2016-09-26T10:03:04.996563Z 1 [Note] A temporary password is generated for root@localhost: ptpiGPrw)0Rc   <- 임시 비밀번호

 

8. MySQL 서버 실행

[root@localhost mysql]# ./bin/mysqld_safe –user=mysql &
[1] 6879
[root@localhost mysql]# 2016-09-26T10:13:01.303590Z mysqld_safe Logging to ‘/var/log/mysqld.log’.
2016-09-26T10:13:01.341881Z mysqld_safe Starting mysqld daemon with databases from /mysql/data

 

9. MySQL client를 통해 서버 접속

[root@localhost mysql]# ./bin/mysql -u root -p
Enter password: ptpiGPrw)0Rc <임시 비밀번호 입력

 

10. 패스워드 변경

mysql> alter user ‘root’@’localhost’ identified by ‘newpassword’;

 

11. MySQL 서버 종료

[root@localhost mysql]# ./bin/mysqladmin -uroot -p shutdown
Enter password:
2016-09-26T10:16:38.921110Z mysqld_safe mysqld from pid file /mysql/data/localhost.LJM.pid ended
[1]+ Done ./bin/mysqld_safe –user=mysql

MySQL 8.0.0 Milestone(DMR)

MySQL 개발팀은 9월 MySQL 8.0.0 milestone(DMR) 버전을  발표하였다.

dev.mysql.com에서 다운로드가 가능하다.

 

Release Note

 

Account Management Notes

  • 권한의 모음의 이름을 지정하는 규칙(Roles)을 지원한다. 규칙 생성 및 삭제를 할 수 있고 규칙은 권한을 부여하고 그들로부터 취소를 할 수 있다.
  • mysql 시스템의 Grant 테이블은 이제 InnoDB(트랜잭션) 테이블에 저장된다.

 

C API Notes

  • libmysqlclient 공유 라이브러리 주 버전 번호는 MySQL 8.0.20~21에서 증가된다.

 

Character Set Support

  • utf8m4 유니코드 문자 집합인 utf8mb4_0900_ai_ci라는 새로운 일반 데이터 정렬이 있다.

 

Compilation Notes

  • CMake는 GNU의 gold 링커와 연결 허용을 지원한다. (-DUSE_LD_GOLD=1 옵션)
  • WITH_EXTRA_CHARSETS 라는 CMake의 옵션이 제거 되었다.
  • MySQL 소스 코드는 C++11 기능을 허용 및 사용한다.

 

Component Notes

  • MySQL 서버는 서버 확장성을 향상시키기 위한 컴포넌트 기반 인프라를 포함한다.

Configuration Notes

  • 시스템 변수 innodb_read_only를 사용할 수 있다.
  • 서버는 하드 코드 값을 사용하지 않고 현재의 플랫폼의 페이지 크기를 얻을 수 있는 시스템 콜을 호출한다.
  • 서버 재시작및 런타임에도 지속되는 구성 변경을 위한 SET의 변형인 SET PERSIST를 지원한다.
  • 사용 되지 않는 mysql_install_db 프로그램, –bootstrap 옵션이 제거 되었다.

 

Data Dictionary Notes

  • MySQL 서버는 transactional tables 객체의 정보를 포함하여 global data dictionary를 통합한다.

 

Data Type Notes

  • 비트 함수와 연산자는 BIT_COUNT(), BIT_AND(), BIT_XOR(), &, I, ,^, ~, <<, >>을 포함한다.
  • 비트 함수와 연산자는 BIGINT(64 비트 정수) 인수를 요구하기 전에 BIGINT 값을 반환한다.

 

Doxygen Notes

  • MySQL의 소스 코드는 내부 문서에 대한 Doxygen을 사용하도록 업데이트 되었다.

 

Optimizer Notes

  • InnoDB 스토리지 엔진 인터페이스는 최적화 추정 복수의 열을 읽어 검사에 사용하는 기록 버퍼의 크기에 대한 정보를 제공할때 최적화 할 수 있다.
  • 옵티마이저는 파생 테이블 또는 뷰가 내부 임시 테이블을 사용하여 외부 쿼리 블록에 병합 또는 구체화 여부를  지정시 테이블 수준 힌트를 지원한다.
  • invisible index를 지원한다.
  • 시스템 데이터베이스에 포함된 column_stats 테이블은 열 값에 대한 통계를 저장하도록 설계 되었다.

 

Packaging Notes

  • 개발 출시 접미사를 사용한다.
  • Red Hat Enterprise Linux 5 and Oracle Linux 5의 RPM 에 대한 지원이 삭제 되었다.
  • Generic binary tarball은  Red Hat Enterprise Linux 6로 이동 되었다.

 

Parser Notes

  • CREATE TABLE에 대한 파서 규칙은 문맥 독립과 유지 보수 및 확장성을 개선하기 위해 재조정 되었다.
  • SELECT와 UNION에 대한 파서 규칙은 일관성과 중복성을 더줄이기 위해 재조정 되었다.

 

Performance Schema Notes

  • Performance Schema는 instruments 서버 오류와 경고, 통계 정보를 요약 테이블 참조를 통해 나타낸다.
  • Performance Schema의 events_statements_current 테이블안에  DIGEST 및 DIGEST_TEST 컬럼은 실행문이 종료된 후에만 채워졌지만 이제는 구문 분석 후 실행문이 시작되기 전에 채워진다.
  • 이전에 Performance Schema 최적화 중점은 데이터 수집에 관련된 오버헤드 감소였지만 보완하여 이제 오버헤드는 데이터 검색 Performance Schema 쿼리를 감소시킨다.
  • Performance Schema의 setup_actors 테이블의 규칙 칼럼 크기는 16 ~ 32자까지 증가하였다.

 

Security Notes

  • 시스템 변수 validate_password_check_user_name는 기본값이 disabled에서 enabled로 변경 되었다.
  • 클라이언트 측 –ssl과 –ssl-verify-server-cert 옵션은 제거 되었다.

 

Spatial Data Support

  • Well-Known Text(WKT)값 import 및 export에 대한 공간 함수는 MySQL에서 OpenGIS ‘GEOMETRYCOLLECTION EMPTY’ 표준 문법보다 ‘GEOMETRYCOLLECTION()’ 비표준 구문에서 사용되었지만 두 구문은 import와 표준구문에 대한 이해한 export에 사용된다.
  • 서버에 대한 Boost 라이브러리의 필요한 버전은 1.59.0에서 1.60.0으로 상승 빌드이다.
  • ST_X()와 ST_Y() 공간 함수는 X 또는 Y는 각각 좌표 값을 지정하는 선택적 두 번째 인수를 허용한다.
  • ST_SRID()공간 함수는 SRID 값을 지정하는 선택적 두 번째 인수를 허용한다.
  • 이제 MySQL은 SRID가 0이 아닌 다른 공간 참조 시스템을 지원한다.
  • ST_ 및 MBR에서 사용되지 않는 함수는 ST_ 와 MBR 함수에서 제거 되었다.

 

Test Suite Notes

  • mysql-test-run.pl은 –do-test와 유사한 –do-suite 옵션을 지원하지만 테스트의 전체 제품군을 지정하는 권한을 실행한다.
  • 이제 mysqltest는 force-rmdir 명령을 지원한다.
  • mysql-test-run.pl은 mysqltest에 전달하는 옵션을 가능하게 하는  mysqltest=options 옵션을 지원한다.
  • mysqltest는 표준 출력으로 실행되는 프로그램에서 즉시 출력을 인쇄하도록 하는 –trace-exec 옵션을 지원한다.
  • MySQL test suite에 테스트의 경우 단지 서버 오류로 인해 –error 명령의 symbolic 오류 이름을 사용하기 이전에 가능했지만 이제는 클라이언트 오류도 가능하게 되었다.
  • mysqltest 프로그램은 이제 파일이 그 대상 디렉토리에서 소스 디렉토리로 패턴이 일치하는 모든 파일을 복사하는  copy_files-wildcard 명령을한다.

 

Functionality Added or Changed

  • 일반 파티션 핸들러가 MySQL 서버에서 삭제되었다.
  • InnoDB 파일 형식의 구성 매개 변수(innodb_file_format, innodb_file_format_check, innodb_file_format_max, innodb_large_prefix)는 5.7.7에서 폐지되어 삭제되었다.
  • innodb_buffer_pool_debug 옵션은 버퍼 풀 크기가 1GB 보다 작은 경우 버퍼 풀 인스턴스 에 부과되는 최소 1GB 버퍼 풀 크기 제한을 무시하고 여러개의 버퍼 풀 인스턴스를 허용한다.
  • 새로운 동적 구성 옵션 innodb_deadlock_detect는 교착 상태 감지를 해제하는데 사용할 수 있다.
  • libinnodb_zipdecompress.a 라이브러리는 innoDB 페이지 압축 해제를 할 수 있는 외부 도구 page_zip_decompress_low() 함수를 사용할 수 있게 되었다.
  • 일부 작업 부하에서 발생할 수 있는 충돌을 해결하기 위해 버퍼 풀 뮤텍스를 제거하고 여러 목록 및 해시 보호 뮤텍스로 대체 되었다. 또한 여러 버퍼 풀 관련 변수는 더 이상 버퍼 풀 뮤텍스 보호를 필요로하지 않는다.
  • InnoDB가 ALTER TABLE ALGORITHM = COPY 작업 중에 발생하는 모든 10000 행의 중간 완료를 방지한다.
  • 읽기-쓰기 잠금 경합을 줄이기 위해 같은 테이블로부터 여러 퍼지 스레드 열 제거가 발생할 수 있다. 언두 레코드는 이제 그룹화와 테이블 ID로 다른 퍼지 스레드에 할당한다.
  • InnoDB 코드는 이제 스레드 관리를 위한 C++ std::thread 라이브러리를 사용한다.
  • BLOB 코드는 압축 및 비 압축 BLOB 데이터 조작을 위한 내부 C++ 인터페이스를 제공하기 위해 재조정 되었다.
  • InnoDB의 memcached 플러그인은 이제 다수의 GET 작업과 범위 쿼리를 지원한다.
  • 현재 최대 자동 증가 카운터 값은 이제 리두 로그 값이 변경될 때마다 기록되고 각 체크포인트를 engine-private 시스템 테이블에  저장한다.
  • innodb_stats_sample_pages 시스템 변수는 제거 되었다.
  • 인덱스 트리 손상이 발생하는 경우 InnoDB는 crash-safe 변경 플래그를 만들어 리두 로그에 손상 플래기를 기록한다. 또한 각 체크 포인트를 engine-private 시스템 테이블에 기록한다.
  • innodb_locks_unsafe_for_binlog 시스템 변수는 제거 되었다.
  • InnoDB는 MySQL 데이터 디렉토리의 외부 테이블스페이스 데이터 파일을 만들 때 더이상 .isl 파일을 생성하지 않는다.
  • InnoDB는 더이상 압축 된 임시 테이블을 지원하지 않는다.
  • INFORMATION_SCHEMA의 새로운 테이블 INNODB_CACHED_INDEXES는 각 인덱스에 대한 InnoDB 버퍼 풀 캐시 인덱스 페이지 수를 보고한다.
  • innodb_checksums 시스템 변수는 제거 되었다.
  • InnoDB 시작 코드가 재구성 되었다.
  • innodb_flush_method의 기본 값은 더이상 NULL이 아니다.
  • XA 트랜잭션에서 두 단계 완료를 지원할 수 있는 innodb_support_xa 시스템 변수는 제거 되었다.
  • CHANGE MASTER TO 문을 오류 로그에 기록하는 방법의 두 가지 개선 사항이 있다.
  • gtid_executed의 상태와 관계 없이 gtid_purged에 GTID를 추가할 수 있어 GTID 기반의 복제 서버의 백업을 복원할 수 있게 되었다.
  • 새로운 Performance Schema 단계는 열 기반 복제의 진행 상황을 보여주기 위해 추가 되었다.
  • 더 정확한 추정치를 생성하기 위해 메모리 스토리지 엔진은 이제 정수 연산보다 부동 소수점을 사용하여 인덱스 통계를 계산한다.
  • CMake의 새로운 옵션인 STATIC_LIBRARIES는 정적 라이브러리를 설치 여부를 제어할 수 있다.
  • 내부 서버 함수 mysql_prepare_create_table()는 코드의 유지보수 및 선명도 향상을 위해 재구성 되었다.
  • libmysqld를 위해 필요한 기능이 Performance Schema테이블에 내장되어 SHOW 문은 show_compatibility_56=OFF 를 지원 할 수 있게 되었다.
  • JSON 함수가 이전보다 더 적은 자원으로 효율적으로 실행한다.
  • lz4와 openssl zlib 시스템 명령어를 사용할 수 있는 경우 lz4_decompress와 zlib_decompress 유틸리티는 불필요하게 되었다.
  • MySQL 문자열 라이브러리에 대한 원본 파일은 C에서 C++로 변경되었다.
  • mysys 라이브러리의 소스 코드는 이제 C보다는 C++을 사용한다.
  • CMake의 새로운 옵션인 WITH_TSAN는 컴파일러가 ThreadSanitizer을 지원할 수 있도록 허용한다.
  • MySQL은 이제 UUID 값을 조작하고 작업하기 더 쉽게 만드는 함수를 제공한다.
  • mysql_plugin 유틸리티가 제거 되었다.
  • 이제 서버는 이전 서버의 실행에서 왼쪽 임시 테이블을 정리하기 위해  스토리지 엔진을 사용한다.
  • 사용되지 앟는 mysql_shutdown() C API 함수와 해당 COM_SHUTDOWN 클라이언트/서버 프로토콜은 제거 되었다.

 

각종 버그 수정

 

http://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-0.html#mysqld-8-0-0-account-management

ClustrixDB 8.0

ClustrixDB 8.0에서 달라진 점

 

ClustrixDB 8.0은 유일한 drop-in 교체로서 진정한 scale-out 성능의 MySQL을 위한 최신 버전이다.


In-memory 처리는 3배 향상된 성능을 제공한다.

  • In-memory는 대량 데이터 수집, In-memory 스트리밍 HTAP, 높은 볼륨 집합 처리에 300%까지 향상된 성능
  • 별도의 코딩 요구 사항없이 In-memory 또는 디스크에 저장하는 기능
  • 자동 선형 확장성을 단순히 더 많은 서버를 추가하는 성장에 맞게 제공

 

쉬운 설치와 배포를 위한 전체 컨테이너 수송

  • 모든 클라우드 또는 데이터 센터에 설치하고 지속적인 배포를 조율하기 쉽게 만드는 완벽한 컨테이너
  • 사실상 MySQL의 응용 프로그램에 최소한의 변경을 요구시(있는 경우)  플러그 앤 플레이 연결
  • 직관적인 모니터링을 위한 사용하기 쉬운 GUI 및 클러스터 관리 성능

 

AES 256-bit 암호화로 강화된 보안

  • 선진 암호화 표준인 (AES) 256-bit 암호화
  • 파티션 수준의 고성능 암호화
  • 분산 컴퓨팅 아키텍처에 빅 데이터 확장성을 충족시키기 위한 최적화된 성능

 

 

자세한 내용은 http://www.clustrix.com/why-clustrix/overview/#whatsnew

MySQL 8.0

MySQL 8.0에 추가된 기능

 

  • 데이터 사전

데이터베이스 객체에 대한 정보를 저장하는 트랜잭션 데이터 사전을 포함한다. (이전 버전에서는 메타 데이터 파일과 비 트랜잭션 테이블에 저장되었다.)


데이터 사전의 장점

균일하게 저장하는 사전 데이터의 중앙 집중식 데이터 사전 스키마의 단순성

파일 기반의 메타 데이터 스토리지의 제거

트랜잭션, 충돌 안전, 사전 데이터의 저장

사전 개체에 대한 균일하고 중앙 집중식 캐싱

간단하고 향상된 INFORMATION_SCHEMA 크게 향상된 INFORMATION_SCHEMA 쿼리 성능 구현


 

  • 계정 관리

권한의 모음에 이름을 지정하는 역할을 지원한다.  (생성 및 삭제. 권한 부여 및 취소)

 

  • InnoDB의 향상

현재 최대 자동 증가 카운터 값이 변경될때마다  리두 로그 기록되고 각 체크 포인트에 엔진 전용 시스템 테이블에 저장된다. (서버 재시작시 현재 최대 자동 증가 카운터 값이 지속)

인덱스 트리 손상이 발생하는 경우 InnoDB는 손상된 플래그를 리두 로그에 기록 또한 각 체크 포인트를 엔진-전용-시스템에 메모리 손상 플래그 데이터를 기록한다. 복구하는 동안 InnoDB는 두 위치에서 손상 플래그를 읽고 메모리 테이블과 인덱스를 표시하는 손상 객체 결과를 병합

memcached 플러그인은 하나의 다중키 / 값 쌍을 가져오는 여러 작업 지원

새로운 동적 구성 옵션 innodb_deadlock_detect는 교착 상태 감지를 해제하는데 사용된다.

새로운 INFORMATION_SCHEMA 테이블은 INNODB_CACHED_INDEXES 페이지 수를 보고 각 인덱스의 InnoDB 버퍼풀에 기록

모든 InnoDB 임시 테이블은 공유 임시 테이블 스페이스에 생성된다.

 

  • JSON 향상

->>  연산자는 JSON_EXTRACT()의 결과에 JSON_UNQUOTE()를 호출하는 것과 같다.

JSON_ARRAYAGG()와 JSON_OBJECTAGG() 집계함수 추가

 

 

MySQL 8.0에서 제거 된 기능

 

  • 데이터 사전 데이터베이스 객체에 대한 정보를 제공되지 않아 –ignore-db-dir, ignore_db_dirs 시스템 변수 제거
  • sync_frm 시스템 변수는 .frm 파일이 사용되지 않기에 제거
  • MySQL 5.7 에서 여러 이름에서 사용할 수 있는 여러 공간 함수는 공간 함수 네임 스페이스가 일관성을 만드는 방향으로 이동 하기 위해 사용되지 않는 ST_ 및 MBR 기능 제거
  • 클라이언트 측 –ssl, –ssl-verify-server-cert 옵션 제거

–ssl-mode=REQUIRED 대신 –ssl=1 또는 –enable-ssl 사용

–ssl-mode=DISABLED 대신 –ssl=0 또는 –skip-ssl, –disable-ssl 사용

–ssl-mode=VERIFY_IDENTITY 대신 –ssl-verify-server-cert 사용

(서버 측 –ssl 옵션은 유지)

  • mysql_shutdown() C API 함수와 대응하는 COM_SHUTDOWN 클라이언트/서버 프로토콜 명령 제거
  • mysqlcheck의 –fix-db-names, –fix-table-name 옵션, ALTER DATABASE문에서 UPGRADE DATA DIRECTORY NAME절, Com_alter_db_upgrade 상태 변수가 제거되었다.
  • mysql_install_db 프로그램은 MySQL 배포판에서 제거
  • 일반 파티션 핸들러 삭제 –partition 및 –sskip-partition
  • mysql_plugin의 유틸리티 제거 –plugin-load, –plugin-load-add 또는 런타임에 INSTALL PLUGIN문을 사용하여 서버 시작시 로딩 플러그인을 포함한다.
  • 사용되지 않는 서버 오류코드 제거
  • InnoDB는 더이상 압축 된 임시 테이블을 지원하지 않는다.
  • InnoDB는 더이상 .isl파일이 생성되지 않는다.
  • InnoDB 파일 형식 구성 매개 변수 제거 innodb_file_format, innodb_file_format_check, innodb_file_format_max, innodb_large_prefix
  • innodb_support_xa 시스템 변수는 XA 트랜잭션에서 두 단계에 대한 지원 커밋을 할 수 있어 제거

 

자세한 내용은 http://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-additions

MySQL 취약점 CVE-2016-6662

CVE-2016-6662로 명명된 취약점은 원격에서 my.cnf 환경설정 파일을 조작함으로써 루트 권한을 탈취해 임의의 코드를 실행할 수 있는 것으로 알려졌다.

 

취약점

 

▶ 원격 (또는 지역)의 MySQL이 사용자 파일 또는 SUPER 권한을 모두를 포함한다.

▶ MySQL의 설정 파일 주위에 부적절한 OS 파일 / 디렉토리 권한 MySQL의 시스템 사용자 액세스를 수정하거나 새 구성 파일을 만들 수 있습니다.

▶ 악의적인 몇 가지 기술 공유 라이브러리를 로드 포함하도록 MySQL의 구성 변경

현재 설명 된 기술은 FILE  또는 SUPER  권한이 필요 CVE-2016-6663  ( FILE의  권한이 없는 구성을 변경하는 방법을 보여줍니다).

▶ 다시 시작할 때 MySQL은 권한 상승을 허용하는 코드를 포함하는 악의적인 공유 라이브러리를 로드하는 것이 있습니다.

 

해당 취약점에 영향을 받는 MySQL 버전은 5.7.15,  5.6.33,  5.5.52 미만 버전이다.


MySQL fixes

For mysqld_safe, the argument to –malloc-lib now must be one of the directories /usr/lib, /usr/lib64, /usr/lib/i386-linux-gnu, or /usr/lib/x86_64-linux-gun, In addition, the –mysqld and –mysqld-version options can be used only on the command line and not in an option file. (Bug #24464380)

It was possible to write log files ending with .ini or .cnf that later could be parsed as option files. The general query log and slow query log can no longer be written to a file ending with .ini or .cnf.  (Bug #24388753)

Privilege escalation was possible by exploiting the way REPAIR TABLE used temporary files. (Bug #24388746)


MySQL 기반의 DBMS인 MariaDB, PerconaDB도 취약점에 영향을 받지만 MariaDB(5.5.51, 10.1.17, 10.0.27)와 PerconaDB(5.5.51-38.1, 5.6.32-78.0, 5.7.14-7)는 해당 취약점의 패치를 이미 완료한 상태이다.

 

점검방법

 

1. MySQL 서비스가 운영되고 있는 OS에서 명령어

wget http://www.i2security.co.kr/i2Sec-CVE2016-6662_check.sh 를 이용하여 다운로드

2. chmod 755 i2Sec-CVE2016-6662_check.sh

3. root 권한으로 실행 (sh  i2Sec-CVE2016-6662_check.sh)

4. my.cnf 파일이 존재하는 경로 및 파일 지정 (ex: /etc/my.cnf)

 

Vuln = 취약                Safe = 안전


[*] Mysql Version[Vuln/Safe] : Safe
[*] Mysql my.cnf location : /etc/my.cnf
[*] config file owned[Vuln/Safe] : Vuln
[*] config file permission[Vuln/Safe] : Vuln

 

임시 대응 방안

 

  1. mysqld_safe를 수동으로 패치한다.                       https://www.psce.com/blog/2016/09/12/how-to-quickly-patch-mysql-server-against-cve-2016-6662/
  2. 원격 사용자가 SUPER 또는 FILE 권한이 없는지 확인
  3. my.cnf 설정 파일의 소유권을 root로 변경 또는 소유주의 쓰기 권한 삭제

HeidiSQL을 이용한 Import

1. HeidiSQL을 다운로드 하기 위해 아래 URL로 이동하여 설치파일을 다운로드 합니다.

http://www.heidisql.com/download.php

2. table을 생성 후 HeidiSQL에서 좌측에 table을 선택후 도구 – CSV 파일 가져오기를 선택한다.

ecbaa1ecb298

제목 없음.png

 

 

CSV 파일의 경로와 각종 옵션을 선택후 가져오기를 누르면 데이터가 import 된다.

ecbaa1ecb2982

ecbaa1ecb2983

 

 

Mysql admin console을 이용한 Import

mysqlimport를 이용한 Import

우선 table을 생성한다.

mysql>  create table employee (empno int(5), ename varchar(15), job varchar(10));

Query OK, 0 rows affected (0.16 sec)

mysqlimport [option] db_name textfile1  명령어를 사용하여 import

[root@localhost /]# mysqlimport -u root -p –local test /home/employee.txt

Enter password:

test.employee: Records: 3 Deleted: 0 Skipped: 0 Warnings: 0

확인해보면 데이터가 들어가있다.

mysql> select * from employee;

=================================

empno           ename               job

100           John Doe           DBA

200           John Smith       Sysadmin

300          Raj Patel            Developer

==================================

3 rows in set (0.00 sec)

또는 load data infile 명령어를 사용하여 import가 가능하다.

mysql> load data infile ‘/home/employee.txt’ into table employee;

Query OK, 3 rows affected (0.01 sec)

Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select * from employee;

=================================

empno           ename               job

100           John Doe           DBA

200           John Smith       Sysadmin

300          Raj Patel            Developer

==================================

3 rows in set (0.00 sec)

명령어 옵션은 http://dev.mysql.com/doc/refman/5.6/en/mysqlimport.html 에서 확인할 수 있다.