# MySQL user 생성 및 관리 총정리
<목차>** MySQL |
** MySQL
1) cmd에서 mysql 실행
> mysql -u root -p
> mysql -u root -p mysql
Enter password: *******
2) mysql 데이터베이스 확인
** mysql 확인
> SHOW DATABASES;
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sqldb |
| sys |
+--------------------+
6 rows in set (0.00 sec)
** 계정 생성을 위해 mysql 데이터베이스로 접근
> USE mysql;
mysql> USE mysql;
Database changed
3) user 테이블 확인
(1) user 확인
-> user 테이블 확인
mysql> SHOW TABLES;
+------------------------------------------------------+
| Tables_in_mysql |
+------------------------------------------------------+
| columns_priv |
| component |
| db |
| (중략) |
| user | -- user 테이블 확인
+------------------------------------------------------+
38 rows in set (0.00 sec)
(2) user 현황 확인
> SELECT user, host FROM users;
mysql> SELECT host, user FROM user;
+-----------+-------------------+
| host | user |
+-----------+-------------------+
| % | testuser2 |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
| localhost | testuser1 |
+-----------+-------------------+
6 rows in set (0.00 sec)
4) 계정 생성
-- 내부 ip로만 접속 가능
CREATE USER 'testuser1'@localhost IDENTIFIED BY '1234';
-- 외부에서도 접속 가능
CREATE USER 'testuser1'@'%' IDENTIFIED BY '1234';
*** localhost로 하면 내부ip만 접속할 수 있고 localhost자리에 '%'로 표시하면 외부ip에서도 접속이 가능하다
5) 비밀번호 변경
mysql> SET PASSWORD FOR 'testuser2'@localhost = '1234';
Query OK, 0 rows affected (0.03 sec)
6) 계정 삭제
DROP USER 'testuser1'@localhost;
-- 조건을 걸어서 삭제
DELETE FROM user WHERE user = 'testuser1';
\
7) 권한 관리
-- 권한 확인
SHOW GRANTS FOR 'testuser2'@'%';
-- 권한 부여
GRANT ALL ON mydatabase.table1 to 'testuser1'localhost;
GRANT ALL PRIVILEGES ON bestproducts.* to 'testuser1'@'localhost';
-- 특정 권한 부여
GRANT SELECT, UPDATE ON mydatabase.table1 to 'testuser1'localhost;