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