라즈베리파이에서 DB 설치하는법 (mariadb)
1. 패키지 설치 전 기존의 패키지를 업데이트 해주어야 한다.
$sudo apt-get update
$sudo apt-get upgrade
2. mariabd를 설치한다
$sudo apt-get install mariadb-server
3. mariadb 버전을 확인해봄으로써 제대로 설치되었는지 체크한다
$mysql -V
4. mysql -u root -p로 로그인을 해준다.
패키지 업데이트가 아주 느린속도로 진행되긴했지만, 나름대로 잘 따라갔다고 생각했는데
$mysql -u root -p/ $sudo mysql -u root -p 둘 다 아래의 에러메시지가 뜨면서 접속이 되지 않았다.
ERROR 1045 (28000): Access denied for user 'root@'localhost' (using password: YES)
위의 에러 메시지는 비밀번호가 맞지 않을 때 출력되는 에러메시지인데, 나의 경우 설정한 비밀번호를 정확하게 기억하고 있었기 때문에 도무지 이유를 알 수가 없었다.
구글링해서 나오는 방법을 다 따라해봐도 에러가 잡히지 않거나, sudo명령어가 듣지 않아 아예 접속이 안되니 방법을 수행 할 수조차 없는경우도 많았다.
결국 선택한 방법은 mysql을 재설치하는것인데
mysql 제거 -> mysql 재설치 후 다시 실행을 해 보아도 같은 문제가 발생
다시 한번 [완전 삭제]를 구글링해서 mysql, mariadb 를 모두 삭제 한 후 다시 다운을 받았다.
다운을 받고 나니
$sudo mysql -u root -p는 수행이 되는데 $mysql -u root -p는 또다시
ERROR 1698 (28000): Access denied for user 'root'@'localhost' 에러가 발생하였다.
위의 에러는 초기설정되어있는 mysql의 root 계정의 패스워드 타입 때문인데 해결을 위해서는 이 타입을 변경해주어야 한다고 한다.
MariaDB의 버전이 10.0 이상 버전부터는 Unix Socket 방식으로 적용됩니다. 요즘은 시스템 계정이 mysql ID와 대응시켜 사용하는 것이 트렌드이며 그로 인해 sudo를 통해 우리가 root 권한이 있음을 증명했기 때문에 mysql에 접속할때 비밀번호를 굳이 입력할 필요가 없어진 것입니다.
그래서,
1. $sudo mysql -u root (mysql 접속)
2. mysql>use mysql;
3. mysql>SELECT user, host, plugin FROM mysql.user; (user, host, plugin 선택해서 보기)
4. mysql>update user set plugin='mysql_native_password= where user='root'; (plugin 타입 mysql_native_password로 변경)
5. mysql>flush privileges; (변경사항 반영, 이걸 하지 않아서 또 한참 삽질했다 ^_ㅠ)
6. mysql>SELECT user, host, plugin FROM mysql.user; 변경된 내용 확인
위와 같이 plugin 타입을 변경해 주었더니 문제가 (일단 여기까지는) 해결되었다.
'환경' 카테고리의 다른 글
라즈베리파이 - 계정 생성, 권한 설정, 외부 연결 (0) | 2021.10.29 |
---|