보안 강화의 일환으로 mysql의 루트 사용자를 삭제/이름 변경하고 싶습니다. 이것을 시도할 때 "mysql.procs_priv"를 얻는 이유는 무엇입니까 error mysql.procs_priv doesn't exist.
? 이 테이블이 mysql 데이터베이스에 필요합니까? 사용자 이름을 변경하기 위해 UPDATE 쿼리를 사용할 경우 부작용이 있습니까? (사용자는 데이터베이스의 다른 테이블과 같은 테이블인 것처럼 보입니다.)
mysql> RENAME USER root TO newroot;
ERROR 1146 (42S02): Table 'mysql.procs_priv' doesn't exist
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv |
| db |
| func |
| host |
| tables_priv |
| user |
+-----------------+
6 rows in set (0.00 sec)
mysql>
답변1
mysql 사용자의 이름을 으로 root
바꾸 려면 newroot
아래 단계를 따르십시오. 여기서 테스트해봤습니다!
- 먼저 루트 사용자로 로그인하십시오.
mysql -u root -p
grant all privileges on *.* to 'tempuser'@'localhost' IDENTIFIED BY 'somepass';
flush privileges;
quit
- 다음과 같이 다시 로그인하세요
tempuser
.mysql -u tempuser -psomepass
update mysql.user set user='newroot' where user = 'root';
quit
- 다시 로그인하여 s의 원래 비밀번호를
mysql -u newroot -p
사용하세요 .root