Mysql 서버에 접속하는 방법은 Mysql 서버프로그램 (mysqld)과 함께 설치된 Mysql
기본 클라이언트 프로그램인 mysql을 실행하면 된다.
다음과 같이 여러가지 형태의 명령행 인자를 넣어 접속을 시도할 수 있다.
#1)
linux> mysql -uroot -p --host=localhost --socket=/tmp/mysql.sock
#2)
linux> mysql -uroot -p --host=127.0.0.1 --port=3306
#3)
linux> mysql -uroot -p
1) 예제는 Mysql 소켓 파일을 이용해 접속하는 예제다.
2) 예제는 TCP/IP를 통해 127.0.0.1(로컬호스트)로 접속하는 예제인데, 이 경우에는 Port를 명시하는 것이 일반적이다.
로컬 서버에 설치된 Mysql이 아니라 원격 호스트에 있는 Mysql 서버에 접속할 때는 반드시 두 번째 방법을 사용해야 한다.
Mysql 서버에서 접속할 때는 호스트를 localhost로 명시하는 것과 127.0.0.1로 명시하는 것은 각각 의미가 다르다.
--host=localhost 옵션을 사용하면 Mysql 클라이언트 프로그램은 항상 소캣 파일을 통해 Mysql 서버에 접속하게 되는데,
이는 Unix domain socket 을 이용하는 방식으로 TCP/IP를 통한 통신이 아니라 유닉스의 프로세스 간 통신(IPC: Inter Process Communicatioin)의 일종이다.
#IPC (inter process communication) 란?
서버 내에서 각 프로세스들이 통신하는 모든 형태를 일컽는다. 이에는 다양한 형태의 메세지 전달 방식이 포함된다.
하지만 127.0.0.1 을 사용하는 경우에는 자기 서버를 가리키는 루프백(loopback) IP이기는 하지만 TCP/IP 통신방식을 사용하는 것이다. (서버-클라이언트 통신으로 풀린다는 얘기)
3)번째 방식은 별도로 호스트 주소와 포트를 명시하지 않는다. 이 경우에는 기본값으로 호스트는 localhost가 되며 소켓 파일을 사용하게 되는데,
소켓파일의 위치는 Mysql 서버의 설정 파일에서 읽어서 사용한다.
ex) my.cnf 파일내
socket = /tmp/mysql.sock
Mysql 서버가 기동될 때 만들어지는 유닉스 소켓 파일은 Mysql 서버를 재시작하지 않으면
다시 만들어 낼 수 없기 때문에 실수로 삭제하지 않도록 주의한다.
유닉스나 리눅스에서 mysql 클라이언트 프로그램을 실행하는 경우에는 mysql 프로그램의 경로를 PATH 환경변수로 등록해둔다.
--initialize-insecure 옵션으로 mysql 서버가 초기화 되었다면 비밀번호 없이 로그인 가능하다.
--initialize 옵션으로 Mysql 서버가 초기화 되었다면 Mysql 서버의 로그 파일에 기록돼 있는 비밀번호를 이용해서 로그인하면 된다.
'쇠똥굴리기(BOOK) > Real mysql 8.0' 카테고리의 다른 글
SET PERSIST 이야기 (0) | 2023.03.27 |
---|---|
Mysql 8.0 업그레이드 시 고려사항 (0) | 2023.03.24 |
mysql 시작과 종료 (0) | 2023.03.14 |
왜 Mysql 인가? (0) | 2023.03.13 |
real mysql 8.0 (0) | 2022.02.16 |