MySQL 계정 생성과 패스워드 변경

MySQL 계정 생성

MySQL 계정을 생성하려면 먼저 MySQL 콘솔로 로그인해야 합니다.

로컬 MySQL에 로그인할 때는 호스트 옵션은 없어도 됩니다. 또는 host-name에 "localhost"를 사용하면 됩니다.

mysql -u userid -h host-name -p

로그인에 성공하면 MySQL 프롬프트(mysql > )가 표시되고 쿼리문을 사용할 수 있게 됩니다.

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

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.

mysql> 

MySQL 계정을 생성하를 쿼리문으음과 같습니다. 로컬 MySQL에 접속했으면 host-name은 "localhost"를 사용하면 됩니다.

CREATE USER 'userid'@'host-name' IDENTIFIED BY 'user-password';

패스워드 복잡성 조건은 초기에 MySQL을 설정할 때 설정한 조건을 충족해야 합니다. 복잡성을 충족하지 못하면 에러가 발생하고 계정이 생성되지 않습니다.

mysql> create user 'dbuser'@'localhost' identified by '1234';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

계정 생성 후, 특정 DB에 생성한 계정의 권한을 부여하려면 다음 쿼리문을 사용합니다.

GRANT ALL PRIVILEGES ON database-name.* TO 'userid'@'host-name';

패스워드 변경

MySQL은 5.7.6 이상 버전과 그 하위 버전의 패스워드 변경 쿼리문이 다릅니다. 구분해서 사용해야 합니다.

MySQL 5.7.6 이상

ALTER USER 'userid'@'host-name' IDENTIFIED BY 'new-password';

또는

UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE USER='userid' AND Host='host-name';

MySQL 5.7.5 이하 구버전

SET PASSWORD FOR 'userid'@'host-name' = PASSWORD('new-password');

쿼리문 실행 결과로 다음처럼 "1 row affected"라고 결과가 나와야 정상 업데이트 된 것입니다.

Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

패스워드 변경후에는 변경 사항을 DB에 반영해야 합니다.

mysql > FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

작업이 완료되었으면 MySQL 콘솔을 종료하고 빠져나갑니다.

mysql > quit;
$