오류 1698 (28000) : Ubuntu 18.04에서 사용자 'root'@ 'localhost'에 대한 액세스가 거부되었습니다.


22

자습서 를 따라 MySQL을 설치했지만 MySQL을 성공적으로 설치 한 후 데이터베이스에 액세스 할 수 없습니다.

오류 1698 (28000) : 사용자 'root'@ 'localhost'에 대한 액세스가 거부되었습니다.


1
나는 뒷조사 후, 동일한 문제에 직면 유 세트 루트 암호에 상기 지침에 따라 각자 가지고 그것을 가지고 유래를 .
Mohammad.H Fathi

답변:


46

here link 에서 해결책을 찾았습니다.이 해결책을 따르면 문제가 해결되었습니다.

짧은 단계는 다음과 같습니다.

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

참고 : test루트 사용자의 새 비밀번호는 다음과 같습니다 . 또한 sudo service mysql restart사용자를 변경 한 후 명령을 실행해야합니다 .


고맙습니다. mysql-server가 더 이상 암호를 입력하지 않는 것이 이상합니다.
gamofe

1
오류 1064 (42000) : SQL 구문에 오류가 있습니다. 1 행의 mysql_native_password BY 'b230mehonot'으로 식별 된 'USER'root '@'localhost '근처에서 사용할 올바른 구문은 MariaDB 서버 버전에 해당하는 매뉴얼을 확인하십시오.
alhelal

같은 오류가 여기에 ... :(
user1111929

@alhelal, 솔루션은 MariaDB가 아닌 MySQL 용입니다. 따라서 다른 솔루션을 시도 할 수 있습니다.
Ashrafuzzaman Sujan 2016

mysql -u root를 작성하지 말고 "sudo mysql"만 작성하십시오. MySQL 5.7 이상을 실행하는 Ubuntu 시스템에서 root 사용자는 기본적으로 auth_socket 플러그인에 의해 인증됩니다.
ravisoni

13

로컬 시스템에 암호를 제공 할 필요가 없으므로 훨씬 좋은 다른 방법을 찾았습니다.
다음과 같습니다.

열린 터미널 및 유형

sudo mysql -u root -p

mysql에서 프롬프트가 표시됩니다. 여기서 mysql 명령을 실행할 수 있습니다.

변경 테이블 유형으로 mysql 테이블을 사용하므로 빈 비밀번호를 사용할 수 있습니다. 벨로우는 그것을위한 명령입니다

USE mysql;

이제 다음 명령에 따라 테이블 유형을 변경하십시오.

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

이제 UPDATE를 사용했기 때문에 권한을 플러시해야합니다. 그랜트 테이블에서 직접 INSERT, UPDATE 또는 DELETE를 사용하는 경우 그랜트 테이블을 다시로드하려면 FLUSH PRIVILEGES를 사용해야합니다.

FLUSH PRIVILEGES;

이제 다음 명령으로 mysql을 종료하십시오.

exit;

이제 다음 명령으로 mysql 서버를 다시 시작하십시오.

service mysql restart

이것이 도움이되기를 바랍니다.

고맙습니다.


2
정답입니다
Ningappa

감사합니다 :)
Krunal Pathak
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.