root는 최고 관리자를 의미하며, MySQL이 설치되면 기본적으로 root라는 사용자가 생성됩니다. 이 사용자는 최고 권한을 가지며 전체 MySQL 서버를 제어할 수 있습니다. 루트 사용자는 매우 높은 권한을 가지며 자신의 비밀번호를 변경할 수 있을 뿐만 아니라 다른 사용자의 비밀번호도 변경할 수 있습니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
mysql에서 루트는 최고 관리자를 의미하며 시스템은 기본적으로 최고 관리자로 설정됩니다.
MySQL이 설치되면 기본적으로 root라는 사용자가 생성됩니다. 이 사용자는 슈퍼 권한을 가지며 전체 MySQL 서버를 제어할 수 있습니다.
MySQL의 일상적인 관리 및 운영에 있어서 누군가 루트 사용자를 악의적으로 이용하여 데이터베이스를 제어하는 것을 방지하기 위해 일반적으로 적절한 권한을 가진 일부 사용자를 생성하고 루트 사용자를 사용하여 로그인하는 경우가 많습니다. 데이터 보안을 보장하기 위해 시스템에 접근합니다.
일반적으로 루트 최고 관리자의 권한은 일반 사용자의 권한보다 훨씬 높으므로 일부 작업을 실행하려면 루트 권한이 필요합니다.
루트 사용자는 매우 높은 권한을 가지며 자신의 비밀번호뿐만 아니라 다른 사용자의 비밀번호도 변경할 수 있습니다.
MySQL에서는 루트 사용자는 매우 높은 권한을 가지므로 루트 사용자 비밀번호의 보안이 보장되어야 합니다.
MySQL 데이터베이스의 사용자 테이블을 수정하세요
모든 계정 정보가 사용자 테이블에 저장되기 때문에 사용자 테이블을 수정하면 루트 사용자의 비밀번호를 직접 변경할 수 있습니다.
루트 사용자가 MySQL 서버에 로그인한 후 UPDATE 문을 사용하여 MySQL 데이터베이스 사용자 테이블의 인증_문자열 필드를 수정하여 사용자 비밀번호를 수정할 수 있습니다.
루트 사용자 비밀번호를 수정하기 위해 UPDATA 문을 사용하는 구문 형식은 다음과 같습니다.
UPDATE mysql.user set authentication_string = PASSWORD ("rootpwd) WHERE User = "root" and Host="localhost";
새 비밀번호는 PASSWORD() 함수를 사용하여 암호화해야 합니다. UPDATE 문을 실행한 후 FLUSH PRIVILEGES 문을 실행하여 사용자 권한을 다시 로드해야 합니다.
예
다음은 UPDATE 문을 사용하여 루트 사용자의 비밀번호를 "rootpwd2"로 변경합니다.
MySQL 서버에 루트 사용자로 로그인한 후, SQL 문 및 실행 결과는 다음과 같습니다.
mysql> UPDATE mysql.user set authentication_string = password ("rootpwd2") -> WHERE User = "root" and Host = "localhost"; Query OK, 1 row affected, 0 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings:0 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.06 sec)
결과는 비밀번호가 성공적으로 변경되었음을 나타냅니다. 그리고 FLUSH PRIVILEGES; 문은 권한을 로드하는 데 사용됩니다. 로그아웃한 후에는 새로운 비밀번호로 로그인해야 합니다.
루트 사용자의 비밀번호를 변경하려면 SET 문을 사용하세요.
SET PASSWORD 문을 사용하면 다른 사용자의 로그인 비밀번호나 자신이 사용하는 계정의 비밀번호를 재설정할 수 있습니다. SET 문을 사용하여 비밀번호를 변경하는 구문 구조는 다음과 같습니다.
SET PASSWORD = PASSWORD ("rootpwd");
Example
다음은 SET 문을 사용하여 루트 사용자의 비밀번호를 "rootpwd3"으로 변경합니다.
MySQL 서버에 루트 사용자로 로그인한 후, SQL 문 및 실행 결과는 다음과 같습니다.
MySQL> SET PASSWORD = password ("rootpwd3"); Query OK, 0 rows affected (0.00 sec)
결과를 보면 SET 문이 성공적으로 실행되었으며, 루트 사용자의 비밀번호가 "rootpwd3"로 설정에 성공했습니다.
SET 문을 사용하여 일반 사용자의 비밀번호를 변경합니다.
MySQL에서는 루트 사용자만 MySQL 데이터베이스를 업데이트하여 비밀번호를 변경할 수 있습니다. MySQL 서버에 루트 사용자로 로그인한 후 SET 문을 사용하여 일반 사용자 비밀번호를 수정할 수 있습니다. 구문 형식은 다음과 같습니다.
SET PASSWORD FOR 'username'@'hostname' = PASSWORD ('newpwd');
이 중 username 매개변수는 일반 사용자의 사용자 이름, 호스트 이름 매개변수는 일반 사용자의 호스트 이름, newpwd는 변경할 새 비밀번호입니다.
참고: 새 비밀번호는 PASSWORD() 함수를 사용하여 암호화해야 합니다. PASSWORD()를 사용하여 암호화하지 않으면 성공적으로 실행되지만 사용자는 로그인할 수 없습니다.
일반 사용자가 비밀번호를 변경하는 경우 FOR 절을 생략하여 비밀번호를 변경할 수 있습니다. 구문 형식은 다음과 같습니다.
SET PASSWORD = PASSWORD('newpwd');
예제 1
먼저 비밀번호 없이 testuser 사용자를 생성합니다. SQL 문 및 실행 결과는 다음과 같습니다.
mysql> CREATE USER 'testuser'@'localhost'; Query OK, 0 rows affected (0.14 sec)
루트 사용자가 MySQL 서버에 로그인한 후 SET을 사용합니다. testuser 사용자의 비밀번호를 "newpwd "로 변경하는 명령문을 실행했을 때, SQL 문과 실행 결과는 다음과 같습니다.
mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd"); Query OK, 0 rows affected, 1 warning (0.01 sec)
실행 결과를 보면 SET 문이 성공적으로 실행되었음을 알 수 있으며, testuser의 비밀번호는 다음과 같습니다. 사용자가 "newpwd"로 설정되었습니다.
testuser 사용자의 비밀번호가 성공적으로 수정되었는지 확인하는 방법은 다음과 같습니다. MySQL 서버를 종료하고 testuser 사용자로 로그인한 후 비밀번호 "newpwd"를 입력합니다. SQL 문 및 실행 결과는 다음과 같습니다.
C:\Users\leovo>mysql -utestuser -p Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 15 Server version: 5.7.29-log MySQL Community Server (GPL) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
실행 결과에서 알 수 있듯이 testuser 사용자가 성공적으로 로그인하고 변경되었습니다. 비밀번호가 성공적으로 입력되었습니다.
예제 2
testuser 사용자로 MySQL 서버에 로그인한 뒤, SET 문을 이용하여 비밀번호를 "newpwd1"로 변경한 SQL 문과 실행 결과는 다음과 같습니다.
mysql> SET PASSWORD = PASSWORD('newpwd1'); Query OK, 0 rows affected, 1 warning (0.00 sec)
볼 수 있습니다. 실행 결과에 따르면 비밀번호가 성공적으로 변경되었습니다.
UPDATE 문을 사용하여 일반 사용자의 비밀번호를 변경합니다.
MySQL 서버에 루트 사용자로 로그인한 후 UPDATE 문을 사용하여 MySQL 데이터베이스 사용자 테이블의 인증_문자열 필드를 다음과 같이 수정할 수 있습니다. 일반 사용자의 비밀번호를 변경합니다. UPDATA 문의 구문은 다음과 같습니다.
UPDATE MySQL.user SET authentication_string = PASSWORD("newpwd") WHERE User = "username" AND Host = "hostname";
그 중 username 매개변수는 일반 사용자의 사용자 이름이고, hostname 매개변수는 일반 사용자의 호스트 이름이며, newpwd는 변경할 새 비밀번호입니다.
UPDATE 문을 실행한 후 사용자 권한을 다시 로드하려면 FLUSH PRIVILEGES 문을 실행해야 합니다.
예 3
使用 root 用户登录 MySQL 服务器,再使用 UPDATE 语句将 testuser 用户的密码修改为“newpwd2”的 SQL 语句和运行结果如下:
mysql> UPDATE MySQL.user SET authentication_string = PASSWORD ("newpwd2") -> WHERE User = "testuser" AND Host = "localhost"; Query OK, 1 row affected, 1 warning (0.07 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.03 sec)
由运行结果可以看出,密码修改成功。testuser 的密码被修改成了 newpwd2。使用 FLUSH PRIVILEGES 重新加载权限后,就可以使用新的密码登录 testuser 用户了。
使用 GRANT 语句修改普通用户密码
除了前面介绍的方法,还可以在全局级别使用 GRANT USAGE 语句指定某个账户的密码而不影响账户当前的权限。需要注意的是,使用 GRANT 语句修改密码,必须拥有 GRANT 权限。一般情况下最好使用该方法来指定或修改密码。语法格式如下:
GRANT USAGE ON *.* TO 'user'@’hostname’ IDENTIFIED BY 'newpwd';
其中,username 参数是普通用户的用户名,hostname 参数是普通用户的主机名,newpwd 是要更改的新密码。
示例 4
使用 root 用户登录 MySQL 服务器,再使用 GRANT 语句将 testuser 用户的密码修改为“newpwd3”,SQL 语句和运行结果如下:
mysql> GRANT USAGE ON *.* TO 'testuser'@'localhost' IDENTIFIED BY 'newpwd3'; Query OK, 0 rows affected, 1 warning (0.05 sec)
由运行结果可以看出,密码修改成功。
【相关推荐:mysql视频教程】
위 내용은 mysql 루트가 뭐야?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!