본문으로 바로가기

MySQL 5.7.21 ZIP 설치 및 root 비밀번호 설정

category 공부/DB 2018. 4. 12. 19:00

 MySQL 너란 녀석 부들부들. 처음 MySQL을 설치할 때 미쳐버리는 줄 알았다. 반나절을 소비하고서 겨우 깔았었다. 첫 시작은 호기롭게 ZIP Archive 설치로 시작했지만, 그 끝은 MySQL Installer였다. (*`н´*) 이유는 묻지 마라. 그때엔 그 누구도 이유를 모른다. (진짜 컴퓨터마다 제각기 다른 방법으로 깔았다.) 근데 지금에서야 ZIP Archive 설치를 완벽하게 성공했다. ( ´ ▽ ` )V


 MySQL Installer를 사용하면 받아야 하는 파일들을 한번에 받을 수 있다. 이 편한 걸 두고 ZIP Archive로 설치하려는 이유가 있다. MySQL을 설치하고 설정을 하는 과정에서 알 수 없는 오류(....)들이 발생한다. 아니 발생 했다. 아닌 사람도 있을 것이다.(부럽) 그럴 때마다 MySQL을 싹 지우고 설치부터 다시 해야 한다. MySQL Installer로 설치하여 진행한 경우, 제어판에 들어가서 완전 제거를 해줘야 한다. 하지만 ZIP Archive는 그냥 압축 해제한 폴더를 삭제하면 된다. 한마디로 말하자면 Installer 보단 가볍게 쓸 수 있다. (강사님이 말해준 걸 드문 드문 기억하는 거라서 아니면 난 모름.. 허허)


아, 참고로 MySQL은 개인 개발 목적이라고 한다.




1) MySQL 사이트 접속

( https://www.mysql.com )




2) Downloads > Community > MySQL Community Server




3) Windows (x86, 64-bit), ZIP Archive 다운로드

각자 컴퓨터의 환경에 맞게 설치하면 된다.

* Login / Sign Up 하지 말고, 밑에 No thanks, just start my download. 를 누르면 된다.




2) mysql-5.7.21-winx64.zip 압축 해제

설치하고자 하는 위치에 ZIP파일 압축을 해제하면 된다.

어디에 압축 해제 했는지 꼭 알아야 한다. 참고로 나는 D드라이브에 압축을 해제했다. 




3) 환경 변수 등록

MySQL을 설치하려는 사람이면 JAVA 환경 변수 설정을 해보았을 것이다. 안했음 말고.


내 컴퓨터(오른쪽 클릭) - 속성 - 고급 시스템 설정 - 환경 변수 


3-1. 새 사용자 변수 만들기 (시스템 변수 - 새로 만들기)

- 변수 이름 : MySQL_HOME

- 변수 값 : D:\mysql-5.7.21-winx64


변수 값은 MySQL ZIP파일을 압축 해제한 경로.

직접 적는 것보단 경로를 긁어 오는 것이 더 정확하고 좋음.



3-2. Path 변수 편집 (시스템 변수 Path - 편집)

변수 값의 맨 앞이나 맨 뒤에 ;%MySQL_HOME%\bin; 추가



※ 안됨. my.ini가 필요하면 http://to-dy.tistory.com/29?category=700250 참고


4) my.ini 파일 만들기


4-1. MySQL 폴더에 my-defult.ini 가 있는 경우

4-2. MySQL 폴더에 my-defult.ini 가 없는 경우


4-1. my-defult.ini 파일 수정(메모장으로 열기)

> basedir : MySQL이 설치된 경로
> datadir : DB 데이터가 저장 될 경로
> port : 일반적으로 3306을 이용.


** 아직 data 폴더가 없음.

** 앞에 #이 붙어 있다면 # 지우기.

*** 주의!! 경로는 역슬레쉬(\)가 아니라 슬레쉬(/)로 입력하는 것이 더 좋다. (일부 프로그램은 \를 처리하기에 오류 발생)



4-2. C드라이브 - ProgramData - MySQL - MySQL Server 5.7 에서 my.ini 가져와서 수정

> basedir : MySQL이 설치된 경로

> datadir : DB 데이터가 저장 될 경로

> port : 일반적으로 3306 사용.


**** ProgramData 가 안보일 경우 : 구성 - 폴더 및 검색 옵션 - 보기 - 숨김 파일 폴더 및 드라이브 표시 체크 - 확인

** 아직 data 폴더가 없음.

** 앞에 #이 붙어 있다면 # 지우기

*** 주의!! 경로는 역슬레쉬(\)가 아니라 슬레쉬(/)로 입력하는 것이 더 좋다. (일부 프로그램은 \를 처리하기에 오류 발생)



4-3. MySQL 폴더에 다른 이름으로 저장 my.ini

* 아직 data 폴더는 존재 하지 않음




*** cmd는 무조건 관리자 권한으로 실행

*** 오타, 띄어쓰기 주의!


5) 설정 파일(my.ini) 초기화

mysqld --initialize-insecure

MySQL 폴더에 data 폴더가 생기면 성공


** root 비밀번호 없이 생성


5-1. 시스템 오류 2 이(가) 생겼습니다.

- 설명 -
1) 윈도우에서는 띄어쓰기가 포함된 경우 ""로 묶어서 표기합니다.
2) 시스템 오류2는 파일 경로 오류입니다. (no such file or directory) 
3) 서비스를 실행할 mysqld.exe 파일의 경로가 잘못되었기 때문에 생기는 오류입니다.

- 해결 -
1) 파일 경로를 제대로 잡으면 해결됩니다.
2) 레지스트 편집기를 실행합니다. (regedit.exe) 
3) (HKEY_LOCAL_MACHINE --> SYSTEM --> CurrentControlSet --> Services --> MySQL) 에 ImagePath 값을 변경해 줍니다. 
4) Mysql이 설치된 폴더의 mysqld.exe를 가르키는 경로를 값으로 합니다.
ex) C:\Program Files\MySQL\mysql-5.7.16-winx64\bin\mysqld MySQL


5-2. 비밀번호가 랜덤 생성된 경우

MySQL을 로그인할때(9번) 엔터를 쳤는데도 들어가지않는다면(비밀번호가 틀렸다고 하면) 비밀번호가 랜덤으로 생성된 경우임.

다시 MySQL폴더를 삭제하고 처음부터 하는데, mysqld --initialize-insecure 로 insecure를 띄어쓰기 하지 않아야 함.




6) MySQL 서비스 등록

mysqld --install


** mysqld --remove 서비스 삭제




7) 컴퓨터 재부팅




8) 서비스 시작

net start mysql



8-2. 서비스를 시작할 수 없습니다.

C:\Windows\system32>net start mysql
MySQL 서비스를 시작합니다..
MySQL 서비스를 시작할 수 없습니다.

서비스가 오류를 보고하지 않았습니다.

NET HELPMSG 3534을(를) 입력하면 도움말을 더 볼 수 있습니다.


data 폴더를 삭제후 mysqld --initialize 하고 다시 net start mysql 하면 됨




9) MySQL 로그인

mysql -uroot -p 

*** Enter password 가 나오면 그냥 엔터를 치면 들어가진다. 아직 비밀번호를 설정 하지 않았기 때문.

* mysql을 로그인하여 사용할 때 쓰임

***** 엔터로 로그인이 안되면 5-2 참고


이렇게 뜬다면 MySQL 로그인 성공~!




10) mysql.user 확인

use mysql;

show tables;

위와 같이 31개의 테이블이 있으면 완전하게 깔린 것이다. 특히 user 테이블이 꼭 있어야 한다. 비밀번호 설정을 위해서 이다. 가끔 innodb 두개만 있는 경우가 있는데, 이럴땐 지우고 다시 깔아야 한다^^; 왜냐하면 비밀번호 설정을 할 수 없기 때문이다 하하하하. 이거때문에 세번은 지웠다 깔았다 ^^; MySQL은 한번에 깔릴 순 없는 걸까^^




11) root 비밀번호 설정


2018.09.12 MySQL 5.7버전 이후부터는 다르게 비밀번호를 변경해야 합니다.

http://to-dy.tistory.com/58?category=700250 참고해주세요!


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

*** 비밀번호는 잊어 먹으면 안됨! mysql 이나 root로 비밀번호 설정.

** 대부분 아이디는 root 임.


11-1. ERROR 1064 (42000): You have an error in your SQL syntax;

use mysql; 을 했는지 확인해보자.


11-2. 'mysql.user'를 찾을 수 없는 경우

다시 지웠다 깔아야 한다. 10번을 해보자.




12) 변경 사항 적용


flush privileges;


**** ; 빼 먹지 말 것



이렇게 뜨면 root 비밀번호 변경 완료