2016/05/11

MySQL 5.7 Manual Install

MySQL 최신 버전인 5.7 버전을 테스트할 일이 있어서 수동으로 설치해 보았는데 이전과 다른 사항이 있어 기록차원에서 정리하였다.

우선 설치에 필요한 압축 파일을 mysql.com 사이트로 부터 다운로드 받는다.
내가 받은 파일은 mysql-5.7.12-winx64.zip 이다. 이 파일을 특정 폴더에 압축을 풀어 놓는다.
여기에서는 E:\Dev\mysql-5.7.12-winx64 압축을 풀어 놓고 기록 하였다.

설정 파일 작성
설정 파일을 작성해야 하는데 압축해제 폴더의 my-default.ini 파일은 my.ini로 복사하여 편집한다.
# These are commonly set, remove the # and set as required.
basedir = E:\Dev\mysql-5.7.12-winx64
datadir = E:\Dev\mysql-5.7.12-winx64\data
port = 3316
# server_id = .....
basedir과 datadir을 필수이고 port는 필요시 지정 한다. 다른 MySQL을 운영으로 인해 또는 다른 이유로 인해 기본 포트인 3306을 사용하지 못하는 경우 다른 포트 입력한다.

환경 변수 등록
압축 해제 폴더를 시스템 환경 변수에 MYSQL_HOME 으로 등록한다. 임시로 사용하는 것으로 시스템 환경설정이 부담스러운 경우 도스창에서 mysqld 를 실행하기전에 아래 명령으로 환경변수 등록 한다.
E:\Dev\mysql-5.7.12-winx64\bin> set MYSQL_HOME = E:\Dev\mysql-5.7.12-winx64

MySQL  초기화
E:\Dev\mysql-5.7.12-winx64\bin> mysqld --initialize
위 명령으로 지정한 data 폴더에 필요한 파일 생성 된다. 혹시 실패한 경우 data 폴더의 내용을 모두 삭제하고 위 명령을 다시 수행한다.

권한 설정을 위한 데몬 실행
--skip-grant-tables 옵션으로 권한 설정을 무시하도록 데몬을 실행한다.
E:\Dev\mysql-5.7.12-winx64\bin> mysqld --skip-grant-tables

MySQL 접속
mysql.exe 실행파일을 이용하여 MySQL에 접속한다.
E:\Dev\mysql-5.7.12-winx64\bin> mysql -u root --port=3316
접속시 포트번호 지정은 설정에서 기본 포트인 3306을 사용하지 않고 다른 포트를 사용할 경우 입력한다.

root 암호 설정
--skip-grant-tables 옵션으로 인해 ALTER USER나 SET PASSWORD 명령을 사용할 수없어 mysql 데이터베이스에 접속하여 User 테이블을 직접 수정한다.
mysql> \u mysql
Database changed
mysql> UPDATE USER SET authentication_string = password('mypassword') WHERE user = 'root';

mysql 재시작
서비스 등록하지 않은 경우 Task Manager에서 mysqld 종료 후 --skip-grant-tables 옵션 없이 다시 시작 한다.
E:\Dev\mysql-5.7.12-winx64\bin> mysqld

MySQL 접속
위에서 설명한 방법으로 MySQL에 접속한다.

root 암호 재설정
위에서 root의 암호를 바꾸서 접속에 성공했음에도 불구하고 데이터베이스 선택 명령을 실행하면 아래와 같이 명령을 수행하기 전에 암호를 설정하로는 에러 메시지가 출력 된다.
RROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

아래 방법을 이용하여 root 암호를 다시 설정 한다.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypassword';
또는
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword');

아래 사항은 필수 사항은 아니고 알아두면 나쁘지 않을 서비스 등록에 대한 내용이다.
mysql 서비스 등록또는 삭제
서비스 등록: E:\Dev\mysql-5.7.12-winx64\bin> mysqld --install [서비스이름]
서비스 삭제: E:\Dev\mysql-5.7.12-winx64\bin> mysqld --remove [서비스이름]
서비스 이름이 지정되지 않으면 기본적으로 'MySQL'로 서비스 등록 시도

서비스 시작: net start mysql
서비스 중지: net stop mysql

No comments :

Post a Comment