반응형
해당 포스팅에서는 현업에서 자주 사용하는 DB 커맨드 및 쿼리를 정리합니다.
DB는 Mysql기준입니다.
보통 개발 DB나 로컬 DB에서 실행하겠지만...
그게 아니라면 주의해서 실행하도록 합시다.
목차
1. 사용자 생성 및 권한 설정
-- 사용자 계정 생성
CREATE USER 'my_name'@'%' identified WITH mysql_native_password BY 'my_password';
-- 특정 Database에 대한 모든 권한 지급
GRANT ALL PRIVILEGES ON dbname.* TO 'my_name'@'%';
-- Read 권한만 지급
GRANT select ON dbname.* TO 'my_name'@'%';
-- CRUD 권한 지급
GRANT select, insert, update, delete ON dbname.* TO 'my_name'@'%';
-- GRANT 사용후 변경사항 즉시 적용
FLUSH PRIVILEGES;
사용자 계정을 만들고
특정 데이터 베이스에 대한 권한을 지급할 때는 위와 같은 명령어가 자주 사용됩니다.
2. safe mode update 해제
SET SQL_SAFE_UPDATES = 0;
-- 실행하고자 하는 쿼리 수행
SET SQL_SAFE_UPDATES = 1;
사용자가 실수로 데이터를 삭제하는 것을 방지하기 위해
Mysql에서는 safe mode가 default로 설정되어 있습니다.
이를 해제하려면 위와 같이 수행 가능합니다.
3. 테이블 백업
-- 테이블 스키마 복사
CREATE TABLE IF NOT EXISTS `복사할테이블` LIKE `원본테이블`;
-- 테이블 데이터 복사
INSERT INTO `복사할테이블` SELECT * FROM `원본테이블`;
간혹 테이블을 복사해야 할 때가 있는데
위와 같이 가능합니다.
4. 시스템 변수 변경
-- 시스템 변수 wait_timeout 설정
SET wait_timeout=60;
-- 글로벌 시스템 변수 wait_timeout 설정
SET @@GLOBAL.wait_timeout=60;
-- 시스템 변수 중 timeout이 포함된 설정 확인
SHOW VARIABLES LIKE '%time%';
-- 글로벌 시스템 변수 중 timeout이 포함된 설정 확인
SHOW GLOBAL VARIABLES LIKE '%time%';
application 과 테스트 또는 버그 재현을 위해
wait_timeout을 변경해야 할때가 있습니다. 이 때 시스템 변수를 변경해 재현해 볼 수 있습니다.
5. 상태 확인
-- Max_used_connections 상태 확인
SHOW STATUS WHERE `variable_name` = 'Max_used_connections';
-- Threads_connected 상태 확인
SHOW STATUS WHERE `variable_name` = 'Threads_connected';
-- 프로세스 상태 확인
SHOW processlist;
6. 백업 & 복구
# 백업
/usr/bin/mysqldump -u root -proot testdb > backup.sql
# 복구
mysql -u root -p root testdb < backup.sql
위 케이스는 사용자명: root, 패스워드: root 이고
db: testdb 일 때 예시입니다.
반응형
'개발 이야기 > RDBMS' 카테고리의 다른 글
Mysql을 Docker compose로 띄우기 (0) | 2024.01.07 |
---|---|
MSSQL을 Docker Compose로 띄우기 (0) | 2021.07.03 |
Oracle_HINT, USE HASH로 성능 끌어올리기 (0) | 2018.05.25 |
Oracle_Column type 변경 시, 이미 데이터가 있을 때 어떻게? (0) | 2018.05.25 |
Oracle_LISTAGG함수, 여러 데이터를 한 Row에 표현 (0) | 2018.05.25 |