Published on

macOS에서 mariaDB 설정

Authors
  • avatar
    Name
    Hoehyeon Jung
    Twitter

개인 프로젝트 진행을 위해서 RDB로 mariaDB를 설정하고 이를 기초 설정하는 과정에서 겪은 문제들을 남겨보았다.

비밀번호가 맞지 않아..

개인 프로젝트에서 사용되는 백엔드는 ExpressJS와 ORM으로 Sequelize를 사용하였다. dialect를 mariaDB로 변경하고 기본적인 DB 생성코드를 작성하고 실행하는 순간 문제가 발생했다.

password authentication failed for user 'root'

root 유저의 비밀번호가 맞지 않나보다. 그러면 root 비밀번호를 수정해야 겠는데..

root가 있는데 왜 들어가질 못하니..

root 계정 입력을 위해서 아래 명령어를 입력하였다.

mariadb -u root -p

그리고 비밀번호를 입력하지 않고 엔터를 치는 순간.. 나는 DB로부터 접근을 차단당했다. 아! 초기 비밀번호 설정이 필요하구나. 싶어서 서비스를 --skip-grant-tables flag를 이용해 재실행한 후, mariaDB에 들어가 비밀번호를 변경하려고 하였다.

UPDATE mysql.user SET Password=PASSWORD(계정 비밀번호) WHERE User='root';

하지만 아래와 같은 Error를 뱉으며 실행되지 않았다.

Column 'Password' is not updatable

여태까지 겪어보지 못한 에러 였으므로 헤당 에러를 검색하던 도중 다음의 블로그의 도움을 받아 문제를 해결할 수 있었다.

MariaDB 인증(Authentication) 문제

요약해보자면, MariaDB에서 10.0 이후로 mysql 사용자와 시스템 사용자를 일치시켰으므로 기본 root 비밀번호 역시 시스템 사용자의 비밀번호로 설정되어 있는 것이다.

또한, 현재 설치된 MariaDB가 10.4 버전 이상이므로 시스템 사용자로 비밀번호를 변경하고자 하는 root로 직접 접근한 이후에 비밀번호를 변경하여야 한다. 이때, user 테이블을 직접 변경할 수 없는 이유는 해당 테이블이 기존에는 직접 접근이 가능했지만 현재는 뷰 테이블로 변경되어서 직접적인 수정이 불가능하고 별도의 Command를 입력하여 수정하여야 한다.

set password = password(변경할 비밀번호);

이후 변경된 비밀번호로 Sequelize의 설정에 따라 접근이 가능하고 DB가 생성되는 것을 확인할 수 있었다.