사용자 테이블에서 일치하는 행을 찾을 수 없습니다.
이 쿼리를 실행하려고 합니다.
DROP DATABASE IF EXISTS `hotel`;
GRANT USAGE ON *.* TO 'user'@'localhost';
DROP USER 'user'@'localhost';
CREATE USER user@localhost IDENTIFIED BY 'user';
CREATE DATABASE `hotel`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
GRANT USAGE ON *.* to 'user'@'localhost' identified by 'user';
하지만 저는 항상 오류가 납니다.
GRANT USAGE ON *.* TO 'user'@'localhost' Error Code: 1133. Can't find any matching row in the user table 0.000 sec
나는 생각했습니다.Grant usage
사용자가 없는 경우 새 사용자를 만듭니다.뭐가 문제야?
저도 같은 오류가 발생했습니다.
grant all on newdb.* to newuser@localhost;
'식별자'로 해결:
grant all on newdb.* to newuser@localhost identified by 'password';
사용자가 존재하지 않으면 Grant usage가 새 사용자를 생성한다고 생각했습니다.뭐가 문제야?
이전 버전의 mysql에서는 이러한 경우가 있었습니다.새로운 방법으로 수행하려면 이 답변을 참조하십시오.시스템 설정을 수정하여 이전과 같은 방식으로 작동하도록 하려면 계속 읽어 보십시오.그러나 링크된 설명서에 나와 있듯이 이 동작은 권장되지 않는 동작입니다.
NO_AUTO_CREATE_USER는 향후 MySQL 릴리스에서 제거될 예정이며, 이 시점에서 해당 효과가 항상 활성화됩니다(GRANT는 계정을 생성하지 않습니다).
설명서에서 mysql이 없는 경우 사용자를 만들 수 있도록 허용하는 옵션을 설정할 수 있습니다.
NO_AUTO_CREATE_USER
GRANT 문은 비어 있지 않은 암호도 지정하지 않은 경우 새 사용자를 자동으로 만들지 못하도록 합니다.
옵션을 설정하려면:
SET [GLOBAL|SESSION] sql_mode='sql' 문을 사용하여 sql_mode 시스템 값을 설정하여 실행 시 SQL 모드를 변경할 수 있습니다.
이 명령은 더 이상 사용자를 자동으로 생성하지 않습니다.
변경하지 마십시오.NO_AUTO_CREATE_USER
변수, 대신 먼저 사용자를 생성합니다.CREATE USER
명령을 실행한 다음 권한을 부여합니다.
DROP USER IF EXISTS 'user'@'localhost';
CREATE USER 'user'@'localhost' IDENTIFIED BY 'pass';
GRANT ALL PRIVILEGES ON database_name.* TO 'user'@'localhost';
스크립트 끝에 추가해 보십시오.
FLUSH PRIVILEGES;
언급URL : https://stackoverflow.com/questions/17597144/cant-find-any-matching-row-in-the-user-table
'programing' 카테고리의 다른 글
PowerShell 복사 항목 사용 방법 및 구조 유지 (0) | 2023.07.25 |
---|---|
많은 디스크 공간을 차지하는 Android SDK 폴더.모든 시스템 이미지를 보관해야 합니까? (0) | 2023.07.25 |
파워셸 언로드 모듈...완전히. (0) | 2023.07.25 |
C 함수 호출의 기본 인수 승격 (0) | 2023.07.25 |
SSH를 로그아웃한 후에도 백그라운드에서 스크립트를 실행하는 방법은 무엇입니까? (0) | 2023.07.20 |