반응형
MySQL이 설치되어있는 상태라면 커맨드 창에서 MySQL에 접속할 수 있다.
mysql이 설치되어있는 폴더로 이동해서
> mysql -u [사용자아이디] -p [데이터베이스이름]
위 명령어를 입력하면 접속된다.
[데이터베이스이름]은 생략할 수 있다.
아래mysql> 이 뜨는 걸 확인할 수 있다.
quit 명령어를 통해 빠져나갈 수 있다.
❗ SQL 명령문은 대소문자를 가리지 않는다.
DDL
데이터베이스
데이터베이스 생성
CREATE DATABASE [데이터베이스명];
CREATE DATABASE [데이터베이스명] DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
두 번째 CREATE 문을 이용해 유니코드를 사용하는 데이터베이스를 생성할 수 있다.
8 버전 이상부터는 기본으로 utf-8을 지원하고 있다.
데이터베이스 삭제
DROP DATABASE [IF EXISTS] [데이터베이스명];
데이터베이스 열람
SHOW DATABASES;
현재 생성되어있는 데이터베이스를 조회할 수 있다.
아래 세 가지는 기본적으로 설치되어 있는 데이터베이스이다.
- information_schema
- mysql : MySQL 관련 정보 세팅 (사용자 계정 등)
- performance_schema
사용자
사용자 계정 생성
CREATE USER '[사용자아이디]' IDENTIFIED BY '[비밀번호]';
CREATE USER '[사용자아이디]'@'[호스트]' IDENTIFIED BY '[암호]';
호스트 부분을 작성하여 내가 원하는 곳에서 접속할 수 있게끔 할 수 있다.
127.0.0.1 또는 localhost로 지정할 수 있고, 만약 % 를 쓰면 어디에서나 다 접속할 수 있다는 의미이다.
호스트 부분에 아무것도 작성하지 않는 경우% 로 기본 설정된다.
CREATE USER 'myuser'@'%' IDENTIFIED BY 'user';
CREATE USER 'myuser'@'127.0.0.1' IDENTIFIED BY 'user';
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'user';
사용자 계정 비밀번호 변경
ALTER USER myuser IDENTIFIED BY 'passwduser';
위와 같은 명령어를 사용해 사용자 계정의 비밀번호를 변경할 수 있다.
사용자 계정 삭제
DROP USER '[사용자아이디]';
DROP USER '[사용자아이디]'@'[호스트]';
권한 설정
권한 생성
GRANT ALL privileges ON [데이터베이스명.테이블명] TO '사용자'@'접속지주소' (with grant option);
flush privileges;
grant 명령 후에 flush를 해주어야 실제로 적용된다.
# myuser가 111.222.333.0 ~ 255에서 모든 데이터베이스와 테이블에 접속하도록 허용
grant all privileges on *.* to 'myuser'@'111.222.333.%';
# myuser가 111.222.333.444에서 db1 데이터베이스의 모든 테이블에 접속하도록 허용
grant all privileges on db1.* to 'myuser'@'111.222.333.444';
# myuser가 localhost에서 db1 데이터베이스의 table1 테이블에 접속하도록 허용
grant all privileges on db1.table1 to 'myuser'@'localhost';
❗ 8.x 버전에서는 identified by를 생략해야 한다.
권한 확인
SHOW GRANTS FOR '[사용자아이디]'@'[호스트]';
SHOW GRANTS FOR 'myuser'@'localhost';
호스트 부분을 생략하는 경우 %가 기본이다.
권한 삭제
REVOKE ALL ON [DB이름.테이블] FROM '아이디'@'접속위치';
기타
USE [데이터베이스명];
USE 명령어를 통해 데이터베이스를 사용할 수 있다.
STATUS;
현재 데이터베이스의 정보를 확인할 수 있다.
반응형