MySQL 루트 사용자의 이름을 바꿀 수 없습니다.

MySQL 루트 사용자의 이름을 바꿀 수 없습니다.

보안 강화의 일환으로 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아래 단계를 따르십시오. 여기서 테스트해봤습니다!

  1. 먼저 루트 사용자로 로그인하십시오.mysql -u root -p
  2. grant all privileges on *.* to 'tempuser'@'localhost' IDENTIFIED BY 'somepass';
  3. flush privileges;
  4. quit
  5. 다음과 같이 다시 로그인하세요 tempuser.mysql -u tempuser -psomepass
  6. update mysql.user set user='newroot' where user = 'root';
  7. quit
  8. 다시 로그인하여 s의 원래 비밀번호를 mysql -u newroot -p사용하세요 .root

관련 정보