잊지않게 기록해두는 기록..
1. MySQL 에 루트 권한으로 로그인!
mysql -u root -p
초기 접속이면 root 로 비밀번호가 설정되어 있지만,
MySQL 루트 사용자에 대한 암호를 설정하지 않은 경우 sudomysql로 로그인할 수 있다고 한다. (아직 해보진 않았다)
2. MySQL 사용자 암호 설정
mysql> ALTER USER 'user-name'@'localhost' IDENTIFIED BY 'NEW_USER_PASSWORD';
mysql> FLUSH PRIVILEGES;
나의 경우는 일단 'root' 사용자의 계정 설정부터 다시 설정한 후, 다른 세팅을 시작했다.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '내가 사용할 비밀번호'
mysql> FLUSH PRIVILEGES;
3. MySQL 사용자 생성
// 기본생성
mysql> CREATE USER 'userId' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
// 원격접속 허용 생성 (모든 원격지에서 접속 가능)
mysql> CREATE USER 'userId'@'%' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
// 특정 아이피 대역에서 접속 가능 (IP 대역 뒤로 %)
mysql> CREATE USER 'userId'@'192.168.%' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
// 특정 아이피 만 접속 가능 - IP 전체 작성
mysql> CREATE USER 'userId'@'192.168.xxx.xxx' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
원격접속 허용 사용자 생성 모든원격지에서 접속가능하도록 할때는 '%'를 붙여준다.
또 /etc/mysql/my.cnf 에서 bind-address 설정을 127.0.0.0 또는 주석 처리해야 원격접속이 가능하다.
4. MySQL 사용자 권한 부여
// 생성된 사용자에게 권한 부여 (exdb 의 extable 에만)
mysql> GRANT ALL PRIVILEGES ON exdb.extable TO 'userId'@'%';
mysql> FLUSH PRIVILEGES;
// 생성된 사용자에게 권한 부여 (exdb 전체)
mysql> GRANT ALL PRIVILEGES ON exdb.* TO 'userId'@'%';
mysql> FLUSH PRIVILEGES;
// mysql database user table 확인
mysql> use mysql;
mysql> SELECT Host, User FROM user;
// 특정 유저의 권한 확인
mysql> SHOW GRANTS FOR 'userID'@'%';
5. MySQL 사용자 권한 삭제 및 사용자 삭제
// 사용자 권한 제거
mysql> REVOKE ALL PRIVILEGES ON devdb.* FROM 'userId'@'192.168.xxx.xxx';
// 사용자 제거
mysql> DROP USER 'userId'@'localhost'
'BE > Database' 카테고리의 다른 글
[DB] DB Schema (데이터베이스 스키마) 와 3단계 데이터 구조 (0) | 2022.07.22 |
---|---|
[DB] About ORM - ORM이란? ( TypeORM 은 뭐지? ) (0) | 2022.07.15 |