Ubuntu20은 데이터베이스에서 사용자 'root'@'%to 데이터베이스 'xxx'에 대한 액세스 거부 문제를 해결합니다.

최근 mysql 권한 할당 시 오류가 발생했습니다. 이 가상 머신의 내장 데이터베이스 mysql 버전은 8이므로 권한 재할당 시 mysql에 "'root'@'% 사용자에 대한 액세스가 거부되었습니다." 오류가 발생한 이유는 다음과 같습니다. 다시 로드 권한이 철회되어 권한 재할당이 실패하고 기타 유사한 권한 문제도 이 방법을 참조할 수 있습니다. 데이터베이스의 원래 낮은 버전이나 Ubuntu18 이하 버전은 데이터베이스 권한 오류와 같은 많은 문제를 일으키기 어렵습니다.

데이터베이스의 올바른 생성 및 8.0 이상의 데이터베이스 권한 설명에 대한 온라인 자습서( https://blog.csdn.net/m0_54849873/article/details/126076063 )를 참조할 수 있습니다. 이 블로그는 매우 자세하고 철저합니다.

    • 데이터베이스 Mysql 사용자 생성

mysql을 입력하고 계정 암호를 사용하여 로그인하여 기본 인터페이스 MySQL 명령줄 페이지로 들어갑니다.

mysql -uroot -p

데이터베이스 인터랙션 라인 진입 후 관리자 권한을 가진 사용자를 생성하는데 코드는 다음과 같다. 여기서는 IP 로그인을 제한하지 않는 사용자 네트워크를 생성한다는 의미이며, 이 사용자의 비밀번호는 123456이며 %는 IP 로그인이 제한되지 않음을 의미합니다(특정 IP 주소를 사용하는 경우 주소로 대체 ​​가능).

create user 'network'@'%' identified by 'network';

사용자 네트워크를 생성한 후 권한 권한을 새로고침해야 합니다. 그렇지 않으면 오류가 발생할 수 있으며 권한 새로고침 코드는 비교적 간단하고 명확합니다.

flush privileges;

2 로컬에서 새 연결을 만들 때 navicat을 사용하여 로그인하고 사용자를 연결할 수 있습니다.

연결이 정상적으로 표시되면 페이지에 로컬 연결이 성공했다는 메시지가 표시됩니다~~. 이때 열어보면 information_schema와 performance_schema 두 개의 데이터베이스만 존재하는 것을 확인할 수 있는데, 아래 그림은 내가 성공적으로 데이터베이스 인증을 구현하고 생성에 성공한 사진이다.

3. 사용자 권한 부여

위의 기본 작업을 완료한 후 권한 부여를 실현할 수 있습니다. 오류의 주요 원인은 다음과 같습니다.

1. Mysql8 이상의 버전은 한 번에 모든 권한을 부여하는 전체 명령문을 사용할 수 없기 때문에, 그렇지 않으면 버전 오류 보고서가 생성됩니다.

이것은 사용자 네트워크가 데이터베이스 네트워크(이전에 생성한 데이터베이스임)의 모든 테이블에 대한 모든 권한을 사용자 네트워크에 부여한다는 것을 의미합니다. 부여 옵션은 사용자가 다른 사용자에게 권한을 부여할 수 있지만 사용자의 권한을 초과할 수 없음을 의미합니다. 이 기능을 실현하기 위해 위의 자습서를 참조할 수 있습니다.

권한 부여를 위한 핵심 SQL 코드는 다음과 같습니다.

grant all privileges on network.* to 'network'@'%' with grant option;
2. 두 번째 오류 유형의 주요 원인은 데이터베이스에 들어가는 방법이 올바르지 않기 때문에 루트 관리자 계정을 사용하여 들어가야 합니다. 예를 들어 액세스 거부에 대한 유사한 이유가 나타납니다.

해결책:

exit //退出数据库

종료 후 루트 명령을 사용하여 MySQL에 로그인합니다.

 mysql -uroot -p(密码)

진입 후 위의 인증 명령을 다시 사용하여 이 데이터베이스의 권한 관리를 완료하고 위의 문제를 성공적으로 해결하면 데이터베이스를 구축할 때 자주 발생하는 문제의 원인입니다.

Supongo que te gusta

Origin blog.csdn.net/qq_49491645/article/details/128862875
Recomendado
Clasificación