MySQL DB

문주은·2022년 4월 12일
0

1. 특정 날짜 사이의 데이터 Load

# -- 현재 ~ 최근 6개월
SELECT *
  FROM table명
 WHERE column명 between date_add(now(), interval -6 month) and now();
 
 
# -- 현재 ~ 최근 1년
SELECT *
  FROM table명
 WHERE column명 between date_add(now(), interval -1 year) and now();
 
# -- 날짜 지정
SELECT *
  FROM table명
 WHERE column명 BETWEEN '2022-01-01' AND '2022-01-02'

2. 상위 n개 데이터 Load

mysql에선 limit 사용 O

SELECT *
  FROM table명
 ORDER BY column명 DESC
 LIMIT 5;

3. DB dump

  • 전체 스키마 dump
$> mysqldump -u [사용자아이디] -p [패스워드] 데이터베이스명 > 경로 및 저장될 파일명.sql

ex) 
> mysqldump -u root -p 1234 testdb > /root/backup/testdb.sql
  • 특정 테이블 dump
$> mysqldump -u [사용자아이디] -p [패스워드] 데이터베이스명 테이블명 > 경로 및 저장될 파일명.sql

ex) 
> ./mysqldump -uroot -p 1234 testdb testtb > /root/backup/testdb_testtb.sql

4. 사용자 계정 권한

  • 사용자, 호스트 전체 권한 정보 보기
> select user, host from mysql.user;

+-----------+---------------+ 
| host      | user          | 
+-----------+---------------+ 
| 10.50.%   | testdb        | 
| 10.50.%   | repli         | 
| localhost | testdb        | 
| localhost | mysql.session | 
| localhost | mysql.sys     | 
| localhost | root          | 
| localhost | test          | 
+-----------+---------------+ 
7 rows in set (0.00 sec)
  • 사용자 권한 삭제
> drop user 'testdb'@'172.16.%';

Query OK, 0 rows affected (0.01 sec)

> REVOKE ALL PRIVILEGES ON `testdb`.* TO 'testdb'@'172.16.%';
  • 사용자 권한 보기
show grants for 'testdb'@'172.16.%';
  • 사용자 권한 부여
# 사용자의 ip주소가 172.16.%일 때만, 모든 데이터베이스에 대한 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'testdb'@'172.16.%' identified by '{password}';

Query OK, 0 rows affected, 1 warning (0.00 sec)

# 사용자의 ip주소가 172.16.%일 때만, 기본 데이터베이스 내의 모든 객체에 대한 권한 부여
grant all privileges on * to 'testdb'@'172.16.%';
profile
Data Engineer

0개의 댓글