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;
$