Windows 10 Ubuntu에서 MariaDB 설치 시 root 로그인 실패

ERROR 1698 (28000): Access denied for user 'root'@'localhost'
와 같은 에러가 발생할 때 해결하는 방법이다.

다음 명령들을 수행한다.

sudo chmod 644 /etc/mysql/debian.cnf
sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

[mysqld] 아래에 다음 내용을 추가하고 저장.
skip-grant-tables

sudo service mysql restart
mysql -u root -p

패스워드 입력에서 엔터키를 친다.
MariaDB 콘솔에 접속되면 다음 명령어들을 입력한다.

FLUSH PRIVILEGES;
select user, host, password, plugin, authentication_string from mysql.user where user='root';

plugin에 unix_socket이 존재해서 로그인에 실패하고 있다.

update mysql.user set plugin='' where user='root';
select user, host, password, plugin, authentication_string from mysql.user where user='root';
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('새 패스워드');
exit
sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

아까 추가한 skip-grant-tables를 제거하고 저장한다.

sudo service mysql restart

다시 접속을 시도해본다.