MySQL 서버 시작

terminal.app에 접속해서 다음과 같이 입력해서 먼저 설치한 MySQL 서버를 시작해준다.

mysql.server start

만약 서버를 시작하지 않고 초기 설정 명령어를 입력하면, 아래와 같은 에러가 발생한다.

Securing the MySQL server deployment.

Enter password for user root: 
Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Can't connect to local MySQL server
딱 봐도 서버가 연결되지 않았다는 에러라는 걸 알 수 있다.


MySQL 초기 설정

mysql_secure_installation

서버가 연결된 후에 초기 설정 명령어를 입력해 주면, 자동으로 root 계정으로 로그인이 된다.

Connecting to MySQL using a blank password.

이때 비밀번호는 공백 상태라고 나온다. 즉 이제 나오는 세션에서 비밀번호를 설정하면 된다.


root 계정 비밀번호 설정


VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security.  It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component?

* 한 마디로 MySQL은 보안을 위해 복잡한 비밀번호의 생성을 권장한다.

Press y|Y for Yes, any other key for No:

복잡한 비밀번호 생성을 원하면 👉 y | Y
필요없다. 단순한 비밀번호도 상관없으면 👉 아무 키



사실 복잡한 비밀번호를 써서 보호할만큼 아직 중요한 자료가 없기 때문에, 나는 No를 선택했다. (필요에 따라 선택하면 된다)


그러면 이제 MySQL이 초기에 생성해준 root 계정에 대한 비밀번호를 생성하는 세션이 나온다.

New password: 🔑

Re-enter new password: 🔑

이제 root 계정의 비밀번호가 생성되었다.

계정 설정 시 질문들

By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.

* MySQL을 설치하면서, 자동으로 생성된 익명의 유저가 있다. 이 익명의 유저 계정을 삭제할 것인지에 대한 질문이다.

Remove anonymous users? 
(Press y|Y for Yes, any other key for No) :  

익명의 유저 계정을 지울려면 👉 y | Y
익명의 유저 계정을 남겨두려면 👉 아무 키



물론 지웠다. 내가 쓸 계정은 앞으로 내가 만들고 지울 예정이니까.



Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.

* root 계정만이 local host를 통해 접속할 수 있다. 다른 게스트들이 원격 접속으로 root 계정에 접근하는 것을 허락할 것인지 묻는 질문이다.

Disallow root login remotely? 
(Press y|Y for Yes, any other key for No) :

원격으로 root 계정의 접속을 허락하지 않으면 👉 y | Y
원격으로도 root 계정의 제어를 원하면 👉 아무 키


이 부분은 localhost 외에 다양한 환경에서 작업하는 경우도 있을 테니 본인의 상황에 맞게 선택하면 된다.


By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production
environment.

*MySQL에는 누구든 접근할 수 있는 'test' 라는 데이터베이스가 있는데, 그 DB를 지울 것인지 묻는 질문이다.

Remove test database and access to it? 
(Press y|Y for Yes, any other key for No) :

이 테스트 DB와 그 접근의 삭제를 원하면 👉 y | Y
테스트 DB를 그냥 두고 싶으면 👉 아무 키


사실 그냥 놔 둘 이유가 없다. 나는 No를 선택했다.



Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

*권한을 부여하는 테이블을 다시 로딩할 것인지 묻는 질문

Reload privilege tables now? 
(Press y|Y for Yes, any other key for No) :

지금 로딩할 거면 👉 y | Y
로딩을 원치 않으면 👉 아무 키



이건 사실 뭘 뜻하는지 모르겠다. 그냥 No를 눌렀다. 사실 뭘 눌러도 상관없는 듯하다.


이 과정까지 완료했으면 All done! 이 뜨면서 초기설정이 종료된다.

mysql_secure_installation 초기 설정은 이후에도 얼마든지 할 수 있으니 변경하고 싶을 때 해당 명령어를 입력하고 접속하면 된다.


초기설정이 완료되었으면, 설정한 계정으로 MySQL 로그인을 할 수 있다.


초기설정 후 MySQL 로그인

ID : root
PW : 설정한 비밀번호


mysql -u root -p

MySQL의 user (-u)는 root 이며 password(-p)를 사용해서 접속할거야. 라는 의미이다.

접속 성공.


MySQL 계정 로그아웃

mysql> exit

mysql> quit

둘다 가능하다.

이 명령어는 로그인한 계정(root)의 접속을 해제하는 것으로, MySQL 서버의 연결을 끊는 것과는 다르다.


MySQL 서버 연결 해제

mysql.server.stop

계정의 접속만 해제해두고 서버 연결을 해제하지 않으면, MySQL Server는 계속 열려있게 된다.

따라서 계정 로그아웃 후에 꼭 서버 연결도 해제해 주어야 한다.

profile
꽃길만 걸어요 우리

0개의 댓글