MariaDb의 관리자 비밀번호가 작동하지 않는 것 같습니다


8

방금 MariaDb새로운 Ubuntu Gnome에 설치 하고 괜찮은 관리자 암호를 설정하고 익명 사용자 등을 제거한 후에 mysql_secure_installation을 실행 했습니다.

그 후 나는 관리자 암호에 관한 이상한 행동을 깨달았습니다.

  • 명령을 사용하여 일반 사용자 계정으로 로그인하려고하면 mysql -u root -p항상 오류가 발생합니다. mysql_secure_installation으로 이전에 ERROR 1698 (28000): Access denied for user 'root'@'localhost'
    설정 한 올바른 비밀번호를 입력 한 것이 확실합니다 ...
  • 를 사용하여 루트에서 명령을 실행하면 sudo mysql -u root -p실제로 입력 한 암호에 관계없이 항상 데이터베이스에 액세스 할 수 있습니다 ...

이 정상적인 동작입니까, 내가 잘못하고 있거나 설치를 망쳤습니까?

답변:


16

이 동작 은 MariaDB가 소켓을 통해받은 운영 체제 자격 증명을 신뢰하고 암호를 사용하지 않는 루트 사용자에 대해 소켓 인증을 위한 플러그인 을 활성화하는 것과 일치하게 들립니다 . 루트로 사용 하거나 로그온하면 OS에서 루트이기 때문에 데이터베이스 서버에 루트로 연결할 수 있지만 다른 OS 사용자는 그렇지 않습니다.sudo

다음을 사용하여 해당 옵션을 제거 할 수 있습니다.

$ sudo mysql -u root

mysql> use mysql;
mysql> update user set plugin='' where User='root';
mysql> flush privileges;

그런 다음 MariaDB 루트 암호를 가진 모든 사용자가 루트로 로그온 할 수 있어야합니다.

대안은 루트가 아닌 다른 사용자를 설정하여 전체 관리자 권한을 가지며 루트가 아닌 관리자 권한으로 사용하는 것입니다.

$ sudo mysql -u root
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost'
->     WITH GRANT OPTION;

0

HBruijn의 답변은 사용하도록 지정되었습니다.

update user set plugin='' where User='root';

그러나 아무도 더 이상 로그인 할 수 없었기 때문에 로그인 시스템이 손상되었습니다 (올바른 비밀번호 사용 여부와 sudo 여부)

내가 작동하게하려면 대신 이것을 사용해야했습니다.

update user set plugin="mysql_native_password" where User='root';
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.