본문 바로가기

뇌/MySQL

[윈도우10]mysql 5.7.10 수동 설치기

0. 

윈도우 10을 깔고, 개발환경을 구축하고 있습니다.

이곳저곳 기웃거리며 mysql 수동설치를 찾는데, 16/02/11기준 mysql 최신 버전이라 그런것인지 설치 방법이 조금씩 달랐습니다.

에러들을 처리하고 나서 정리하는 겸 적습니다.


1. 

http://dev.mysql.com/downloads/mysql/

에서 mysql-5.7.10-winx64을 다운

(Windows 10 64 bit을 사용할 경우)




2.

다운 후 원하는 경로에 압축풀기.

전 d:\mysql에 풀었습니다.

폴더 안에 my-default.ini 를 열고 수정합니다.

아래처럼 수정하시고 my.ini로 같은 폴더에 "다른이름으로 저장" 해주세요.

 1) basedir, datadir, port 앞에 주석(#)을 삭제한다.

 2) basedir에는 mysql 압축을 푼 폴더를 작성. (폴더경로는 백슬래시(\)가 아닌 슬래시로(/)

 3) datadir은 mysql압축을 푼 폴더 안에 data폴더

 4) port를 3306

 5) 수정 후, 다른 이름으로 저장 .. 이름을 my.ini로 같은 폴더에 저장합니다.

=>결과



3.

제어판에 환경변수에서 mysql 환경 변수를 등록해줍시다. 윈도우 키 누르시고 환경변수 검색하시면 바로 찾으실 수 있습니다.

전 설치한 경로가 d:\mysql이므로 MYSQL_HOME을 그곳으로 등록하였습니다.




이후, Path에 MYSQL_HOME\bin 폴더를 추가해줍니다.

%MYSQL_HOME%\bin 으로 적어야 합니다. MYSQL_HOME 양 옆에 %를 붙여주세요.

bin 전에는 \넣어주세요.





4.

 관리자 권한으로 명령 프롬프트를 실행합니다.

윈도우 키 누르시고 명령 프롬프트 검색 후 오른쪽 클릭, 관리자 권한으로 실행 혹은

윈도우 + x 키를 누르고 명령 프롬프트(관리자)를 찾으실 수 있습니다.


실행하시고 mysqld --initialize 를 입력


끝나고 명령 프롬프트엔 아무것도 안 나옵니다.

d:\mysql\data 폴더에(my.ini에 datadir로 입력하신 폴더) 데이터가 들어가는 것을 보실 수 있습니다.

(도중 문제가 생기셨다면, data 폴더 안에 내용을 비우고 다시 mysql --initialize 합니다.)


5.

 mysql을 서비스에 등록

"mysql 경로\bin\mysqld" --install

"d:\mysql\bin\mysqld" --install

(혹시나 안되시면, mysqld.exe로 

"d:\mysql\bin\mysqld.exe" --install)

=>path를 등록하였기 때문에 mysqld --install해도 서비스는 등록되지만, 실행하시면 에러가 발생합니다.

서비스 경로가 c드라이브의 mysql이 설치되는 기본 폴더로 지정되있게 되고, 이를 찾지 못해서 에러가 발생합니다.

=>삭제는 --remove입니다.


등록에 성공하였으면, 서비스를 시작해봅시다.

서비스 시작은 꼭 명령 프롬프트가 관리자 권한으로 실행되어야 합니다.

net start mysql

=> 서비스 중지는 net stop mysql


6.

서비스가 잘 시작되면, 루트 계정으로 접속해봅니다.

mysql -u root -p

그럼 또 에러가 납니다.

이유는 잘 모르겠지만, root의 비밀번호가 다르다고 접속할 수 없습니다. 지정한 적 없다 이놈아.

그래서 root의 비밀번호를 바꿔주어야 합니다.

일단, mysql에 root로 비밀번호가 없더라도 접속할 수 있어야 합니다.


 1)

 관리자 권한 명령 프롬프트로, 서비스를 멈춥시다.

 net stop mysql


 2)

 비밀번호를 생략하도록 서비스를 다시 시작합시다.

 mysqld --skip-grant-tables

 입력하면, 해당 명령 프롬프트는 서비스를 실행하느라 사용할 수 없습니다.


 3)

 다른 명령 프롬프트를 열고, mysql에 접속합니다.

 (새로 연 명령 프롬프트)

 mysql -u root -p

 비밀번호 입력하는데 엔터 눌러도 접속됩니다.


 4)

 use mysql;

 update user set authentication_string = password('새로운 비밀번호') where user = 'root'; 

 flush privileges;


 5)

 비밀번호를 생략했던 서버를 종료시키고, 새로운 비밀번호로 접속해봅시다.

 mysqld --skip-grant-tables 를 실행했던 명령 프롬프트를 종료합시다.

 윈도우키 + x 를 눌러 작업관리자(T)를 실행시키고, 백그라운드 프로세스에 있는 mysqld.exe를 종료시킵니다.


 6)

 명령 프롬프트를 관리자 권한으로 실행시키고, mysql 서비스를 시작합니다.

 net start mysql


 7)

 mysql -u root -p

 를 입력하고,

 새로운 비밀번호를 입력하면 접속할 수 있습니다.

 다만 사용하려면 root 비밀번호를 다시 설정하라는 알림이 뜹니다.

 alter user 'root'@'localhost' identified by '새로운 비밀번호';

 를 다시 입력해주셔야 정상적으로 사용 가능합니다.


7. 마치며

제가 한 방법이 정석이 아닐 수 있습니다. 전 제가 헤맨 과정을 그대로 적었습니다. 더 좋은 방법이 있다면, 댓글로 달아주시면 감사하겠습니다.

설치를 완료한 후 기억에 의존하여 적은 것이라, 혹시나 잘못된 점이 있다면 댓글 부탁드립니다.