mariaDB ( MySQL ) 는 버젼( 10.4 이상 )에 따라 인증 방식이 다르다. 신버젼은 그냥 설치하면 시스템의 root 계정이 바로 mysql 의 그것으로 매칭되어 별 다른 설정 없이 바로 접속할 수 있게 되는데, TrueNAS의 Jail 에는 root 계정에 비밀번호가 설정되어 있지 않아 도당체 접속을 할 수가 없다. 그래서 TrueNAS 에서 MariaDB 를 설치하면 무조건 한번은 root 패스워드를 재설정 하게 된다. grant table 건너뛰고 접속해서 패스워드 재설정 하는건 동일한데, 접속한 직후에 flush privileges 를 한번 해 줘야 한다.
shell > service mysql-server stop
stopping mysql.
....
서비스 이름을 잘 모르겠으면 /usr/local/etc/rc.d 에서 확인한다.
shell > mysql_safe -u root --skip--grant-tables &
shell > mysql -u root
....
mysql > flush privileges;
mysql client 로 접속하자마자 reload 를 해 줘야 권한 테이블 스킵 한 것이 적용되는 모양이다. 이거 안하면 이상한 에러 메시지가 나오면서 유져 테이블을 update 할 수가 없다.
mysql > update user set password=password('root패스워드') where user='root';
mysql > update user set authentication_string=PASSWORD('audiopmydb') WHERE user='root';
mysql > ALTER USER 'root'@'localhost' IDENTIFIED BY 'Study3306!';
적당히 되는 걸로 패스워드를 재설정하고 변경된 권한을 reload 한다.
mysql > FLUSH PRIVILEGES;
mysql > exit;
Bye
빠져나와서 mysql-server 을 재시작한다.
shell > service mysql-server stop
shell > service mysql-server start
왜인지 모르겠는데 그냥 restart 하니까 –skip-grant-tables 가 적용된 채로 재시작하는 경우가 있었다.
저래도 안되면 그냥 Jail 재시작…ㅋㅋ