우분투 18.04에서 mysql 설치시 초기 비밀번호 생략? phpmyadmin 접속 가능하게 하는법

새로운 서버를 구축하면서 공부하게 된것

NGINX, MYSQL, PHP 조합으로 설치하였다.

최신 우분투 18.04에서 mysql 을 인스톨하니 전처럼 패스워드를 입력하는 것이 나오지 않았다.

여러 글들을 살펴보니 직접 데이터베이스를 건드려서 패스워드를 입력하라고 하더라.

mysql -uroot -p

이 명령어를 사용하면 Access Denied 가 뜬다. (1064에러)


sudo mysql

이 명령어를 사용하면 무사히(?) 접속이 된다.


결론부터 얘기하자면, mysql 접속 인증방법이 패스워드가 아닌 auth_socket으로 되어있기 때문이다. 이걸 패스워드 방식으로 바꿔줘야 된다.

auth_socket으로 되어있기 때문에 아무리 패스워드를 바꾸어도 access denied가 되고,

sudo mysql

이 명령으로 패스워드 입력없이 접속이 가능하다.


이제 소켓인증이 아닌 패스워드 인증방식으로 바꿔보자

sudo mysql

USE mysql;

UPDATE user SET plugin='mysql_native_password' WHERE user='root';

FLUSH PRIVILEGES;

exit;

그리고 mysql을 재시작 해준다

sudo systemctl restart mysql.service


root의 비밀번호를 바꿔준다

sudo mysql

USE mysql;

UPDATE user SET authentication_string=password('비밀번호') WHERE user='root';

FLUSH PRIVILEGES;

exit;


공부하다보니

굳이 이걸 바꿀 필요가 있나라는 생각이 들었다.

사람들이 살다보면 비밀번호를 잊는경우가 많다.

그래서 root는 비밀번호 없이도 접근할수 있게 열어두고

새로운 사용자를 만들어 phpmyadmin으로 접근가능하게 해두는게 더 나은 방법같다.

어차피 sudo 명령어가 사용가능하다면 비밀번호없이 mysql에 접근하는 방법은 있기 때문에

이대로 두고 새로운 관리자용 사용자를 만들어 관리하는것을 추천한다.

No comments:

Post a Comment