티스토리 뷰

MySQL :: Download MySQL Installer

 

에서 용량이 큰 msi 파일을 다운을 받는다.

 

설치 파일을 실행 후 Custom을 선택하여

My SQL Server 

MySql Shell 

MySQL Router를 설치하자.

 

이후 설정들은 책에 나와있는데로 설정하고 설치하였다.

 

windows에서는 cmd에서 MySql명령어를 치려면 환경변수를 등록을 해주어야한다.

내 PC 우클릭 -> 속성 -> 고급 시스템 설정 -> 환경 변수 -> 시스템 변수의 Path 수정

C:\Program Files\MySQL\MySQL Server 8.0\bin (사용자마다 다를 수 있음) 등록 하면 끝난다.

 

환경 변수 설정

 

 

1) 초기화

 

책에서 첫부분에 알려주는 초기화를 진행한다.

##linux
mysqld --defaults-file=/etc/my.cnf --initialize-insecure

##windows
mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --initialize-insecure --console

initialize 옵션은 초기데이터파일, 로그파일, 관리자계정 (root)를 생성한다.

Windows는 이미 설치과정에서 진행된것이지 실행되지 않는다.

아래와 같은 로그가 나오는데 

 

Chat GPT가 다음과 같은 답변을 준다..

 

이전 답변으로 혼란을 드린 점 사과드립니다. 2021년 9월 마지막 업데이트부터 --initialize 옵션은 일반적으로 Unix 계열 시스템에서 mysqld 명령과 함께 사용되며 Windows에서 직접 사용하지 못할 수도 있습니다.

Windows에서는 MySQL Installer가 설치 및 초기화 프로세스를 처리하므로 --initialize 옵션을 별도로 사용할 필요가 없습니다.

 

공식문서를 번역기 돌려보면 다음과 같다.

서버는 데이터 디렉토리의 존재 여부를 다음과 같이 확인합니다.
다음과:데이터 디렉터리가 없으면 서버에서 데이터 디렉터리를 만듭니다.데이터 디렉터리가 있지만 비어 있지 않은 경우(즉, 파일 또는 하위 디렉토리를 포함), 서버가 종료됩니다
오류 메시지를 생성 한 후 :[ERROR] --initialize specified but the data directory exists. Aborting.
이 경우 데이터 디렉토리를 제거하거나 이름을 바꾸고 다시 한 번 시도해 보세요.기존 데이터 디렉터리는 비어 있지 않을 수 있습니다 모든 항목에 마침표로 시작하는 이름이 있는 경우 (). .

만약 정말로 다시 하고 싶으면

C:\ProgramData\MySQL\MySQL Server 8.0\Data 이 폴더를 삭제한 후 위의 명령어를 삭제하면된다.

물론 삭제하기전 MySQL80의 서비스를 종료하여야만 삭제할 수 있다.

 

 

 

2) 로그파일 위치

 

window에서는 로그파일이 

C:\ProgramData\MySQL\MySQL Server 8.0\Data (일반적인 설치) 이곳에 쌓이므로 unix계열과 다름에 주의하자

 

 

3) 서비스 상태 조회 , 중단 , 시작

## 모든 서비스 조회
sc query

## MySql만 조회
sc query mysql80

## 종료
sc stop mysql80

## 시작
sc start mysql80

## PID 찾기
tasklist | findstr mysql

## PID로 PORT번호 찾기
netstat -nao | findstr "PID번호"

 

mysql에서 클린 셧다운(커밋된 데이터를 데이터 파일에 적용하고 종료하려면

SET GLOBAL innodb_fast_shutdown=0

으로 설정하자.

 

4) 연결 테스트

 

Unix계열의 운영체제에서는 Socket 파일을 통해 접속할 수 있는데,

윈도우에서는 해당 파일이아닌 TCP/IP 통신을 이용한다고 한다.

따라서

mysql -uroot -p --host=127.0.0.1 --port=3306

를 통해 접속 할 수 있다. 

아래와 같은 화면이 나오면 성공한 것이다.

 

5) 설정 파일

 

설정 파일을 읽어오는 순서는 mysql --help 명령어를 통해 내용을 확인해보면

Default options are read from the following files in the given order:
C:\Windows\my.ini C:\Windows\my.cnf C:\my.ini C:\my.cnf C:\Program Files\MySQL\MySQL Server 8.0\my.ini C:\Program Files\MySQL\MySQL Server 8.0\my.cnf

처음에 나오는 경로부터 마지막까지 경로를 통해 설정파일 위치및 읽어오는 순서를 알 수 있다.

 

ini파일을 확인해보면

[mysql], [client]와 같이 설정그룹을 나눠놓은 것을 확인할 수 있다. 설정파일을 1개로 하지만 각 프로그램은

설정그룹에 의해 설정이 결정된다.

 

6) My SQL 시스템 변수

 

시스템 변수는 SHOW VARIABLES 혹은 SHOW GLOBAL VARIABLES 명령어를 통해 확인 할 수 있다.

시스템 변수는 5가지 속성을 가지고 있는데 그 의미는 다음과 같다.

 

- Cmd-Line: MySQL 서버의 명령행 인자로 설정될 수 있는지 여부 (명령행 인자로 변수 변경 가능)

- Option file: MySQL 설정 파일인 my.cnf(my.ini)로 제어할 수 있는 지 여부

- System Var: 시스템 변수인지 여부

- Var Scope: 시스템 변수의 적용 범위 (Global, Session, Both)

- Dynamic: 동적 변수인지 정적 변수인지 구분

 

글로번 변수는 하나의 MySQL서버 인스턴스에서 전체적으로 영향을 미치는 시스템 변수를 의미한다.

(주로 MySQL 서버 설정[ex :풀])

세션 변수는 MySQL클라이언트가 서버에 접속할 때 기본으로 부여하는 옵션의 기본값을 제어한다. (AutoCommit)

(처음 기본값은 글로벌 시스템 변수지만 각 클라이언트가 가지는 값은 세션 시스템 변수다.)

Both라고 설정된 변수는 서버의 설정파일에 명시해 초기화 할 수 있는 변수이다.

 

정적변수는 서버 가동중인 상태에서 변경이 불가능한 변수이다. 설정파일 수정 및 재시작을 통해서 변경된다.

동적변수는 서버 기동중에도 변경가능하다. SET명령어로 변경 가능하지만 설정파일에 반영이 안되기 때문에

주의하여야하고 8.0부터는 SET PERSIST 명령을 통해 변경과 동시에 설정파일에도 수정을 가할 수 있다.

만약, 다음 재가동시부터 적용 시키려고 설정파일만 바꾸려고 하는 경우 SET PERSIST_ONLY 명령어를 사용하면 된다.

이렇게 적용된 것은 C:\ProgramData\MySQL\MySQL Server 8.0\Data\mysqld-auto.cnf 를 확인하면

JSON형식으로 볼 수 있다.

 

시스템 변수가 Both 인 경우 글로벌 시스템 변수의 값을 변경해도 이미 존재하는 커넥션의 세션 변수값은 유지된다.

 

만약 SET PERSIST, PERSIST_ONLY의 변경 내용을 삭제하고 싶으면 RESET PERSIST 명령어를 사용해서 

삭제할 수 있다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함