MySQL: ERROR 1227 (42000):액세스 거부 - 사용자를 생성할 수 없습니다.
저는 Win7에서 MySQL 5.5.16 noinstall Zip Archive를 사용하고 있습니다.
서버를 시작한 후 명령어는show databases
2개의 데이터베이스 목록을 보여줬습니다information_schema
그리고.test
. 후자는 비어 있습니다.
테이블은 어디에 있습니까?user
?
이 명령을 통해 새 사용자를 생성하려고 했습니다.create user newUser;
그리고 다음과 같은 오류 메시지를 받았습니다.ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation
데이터베이스, 테이블을 만들고 원하는 모든 작업을 수행하려면 어떻게 해야 합니까?제가 사용하고 있는 사실이MySQL 5.5.16 noinstall Zip Archive
오류 메시지와 관련이 있습니까?
먼저 실행해야 할 작업은 다음과 같습니다.
SHOW GRANTS;
익명의 사용자가 mysql에 인증하도록 할당되었다는 것을 금방 알 수 있습니다.
mysql에 로그인하는 대신
mysql
로그인은 다음과 같이 로그인합니다.
mysql -uroot
기본적으로 root@localhost에는 모든 권한이 있고 암호는 없습니다.
암호 없이 root으로 로그인할 수 없는 경우 다음을 수행합니다.
01단계) my.ini의 mysqld 섹션에서 두 가지 옵션을 추가합니다.
[mysqld]
skip-grant-tables
skip-networking
02) mysql 재시작
net stop mysql
<wait 10 seconds>
net start mysql
03단계) mysql에 연결합니다.
mysql
04단계) root@localhost에서 암호 생성
UPDATE mysql.user SET password=password('whateverpasswordyoulike')
WHERE user='root' AND host='localhost';
exit
05단계) mysql 재시작
net stop mysql
<wait 10 seconds>
net start mysql
06단계) 비밀번호 루트로 로그인
mysql -u root -p
당신은 거기서부터 잘 해야 합니다.
나에게 문제는 (아주 이상한 이유로) 루트가 가지고 있다는 사실이었습니다.Host
의%
대신에localhost
저는 위와 같은 오류를 받았습니다.DROP USER
; 위 답변에서 제시한 권한 - 이미 가지고 있어서 솔루션이 제게 적합하지 않습니다.
DB는 다음과 같습니다.
mysql> drop user 'testuser'@'%';
ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation
mysql> select Host,User,drop_priv from user;
+------+------------------+-----------+
| Host | User | drop_priv |
+------+------------------+-----------+
| % | mysql.infoschema | N |
| % | mysql.session | N |
| % | mysql.sys | N |
| % | root | Y |
+------+------------------+-----------+
그리고.
mysql> SHOW GRANTS FOR 'root'@'%';
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@% |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`%` WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
여러가지 시도를 해보았지만, 결국에는 그 방법을 바꾸게 되었습니다.Host
부터%
로.localhost
보안 문제 때문에 다른 건 없어요
mysql> UPDATE user SET Host='localhost' WHERE user='root' LIMIT 1;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0
왜 그랬는지는 모르겠지만 효과는 있었습니다.
mysql> quit
$ mysql -u root -p
.. ENTER (NO PASSWORD) ..
mysql> drop user 'testuser'@'%';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
이유는 모르겠지만 다른 사람들에게 도움이 되기를 바랍니다.센트를 사용합니다.SELinux와 다른 것들이 있는 OS, 아마도 다른 구성 요소들이 이것과 연관되어 있을 것입니다.몰라.
언급URL : https://stackoverflow.com/questions/7797543/mysql-error-1227-42000-access-denied-cannot-create-user
'source' 카테고리의 다른 글
분할 함수에 의해 반환되는 배열 크기 - Excel VBA (0) | 2023.10.04 |
---|---|
MySQL 저장 프로시저의 변수에 SELECT 문의 값을 저장하려면 어떻게 해야 합니까? (0) | 2023.10.04 |
현재 사양이 없을 때 'expect'가 사용되었는데, 이는 Jasmine 2.3.1에서 비동기 테스트가 타임아웃되었기 때문일 수 있습니다. (0) | 2023.09.24 |
Android의 버튼 안에 텍스트 왼쪽 정렬 (0) | 2023.09.24 |
MVC4의 Global.asax.cs 페이지에서 문제 발생 (0) | 2023.09.24 |