(1) DB Server
(2) DB Client
(3) MySQL 기본명령어
1. 레포지토리 다운
2. 레포지토리 편집
- 5.7 버전 설치를 위해 'gpgcheck=0' 으로 수정
3. 서버 설치(클라이언트 자동 설치)
4. MySQL 실행
5. 초기 패스워드 확인
- mysql 최초 접속 시 초기 패스워드 필요
6. MySQL 접속
- 초기 패스워드 입력 후 새로운 패스워드 설정
- root 패스워드 설정
- mysql -u[사용자] -p[패스워드] : 패스워드는 외부에 공개가 되기 때문에 옵션만 준 채로 Enter, 후에 패스워드 입력
7. DB 확인
- [show databases;] : 현재 database 출력
- [use mysql;] : database(mysql) 사용
- [show tables;] : 현재 database(mysql) 테이블 출력
- [select * from user;] : user 모든 테이블 내용 확인
- [select host,user,authentication_string from user;] : user 테이블의 host, user, authentication_string 내용 확인
- Database 권한 부여 : [grant all privileges on 'db명'.'table명' to '계정명'@'대역대' identified by '패스워드';
- 권한 설정 적용
- 나가기 : exit
- 방화벽 열기
1. 레포지토리 설치
2. 레포지토리 편집
3. 클라이언트 설치
4. MySQL 접속
- mysql -u[사용자명] -p[패스워드] -h [접속 대상 IP]
1. 명령어
- [show databases;] : database 출력
- select [컬럼명] from [데이터베이스].[테이블명]; : 데이터베이스에 있는 테이블 안의 컬럼 출력
- create database [데이터베이스 명]; : 새로운 데이터베이스 생성
- use [데이터베이스 명]; : 지정한 데이터베이스 사용
- create table [테이블 명] (컬럼명1 컬럼 속성, 컬럼명2 컬럼 속성, 컬럼명3 컬럼 속성 ~) : 앞에서 지정한 데이터베이스의
테이블 생성 후 컬럼 구성
- desc [테이블 명]; : 지정한 테이블 내용 출력
- insert into [테이블 명] values(값, 값, ~) : 지정한 테이블의 컬럼에 맞춰 데이터 삽입
- select [컬럼 명] from [테이블 명]; : 지정한 테이블 안의 지정한 컬럼 출력
- 새로운 테이블 생성 후 컬럼 구성
- 테이블 출력
- 데이터 삽입 후 테이블 출력
2. 조건문
- where [컬럼 명]=값; : [컬럼명]이 [값]인 경우 출력
- where [컬럼 명1]=[값1] or [컬럼 명2]=[값2]; : [컬럼 명1]이 [값1]인 경우나 [컬럼 명2]가 [값2]인 경우 출력
- where [컬럼 명] between [값1] and [값2] ; : [컬럼 명]이 [값1]과 [값2] 사이인 경우 출력
- where [컬럼 명] in [('값')]; : [값] 중에 [컬럼 명]이 일치하는 경우 출력
- where [컬럼 명] like ['값%']; : [컬럼 명]에 일부가 [값]과 일치하는 경우 출력
- % : 값을 지정해주지 않기 때문에 모든 값 출력
- ex) k% = k로 시작하는 모든 값 / k_ _ = k로 시작하는 3글자
- where [컬럼 명] > [값]; : [컬럼 명]이 [값]보다 큰 경우 출력
- limit [값]; : [값]만큼 제한된 레코드 출력
* 레코드의 값은 0부터 시작 → 아래는 레코드 값 0, 1, 2
- limit [값1],[값2]; : [값1]에서부터 [값2]만큼의 레코드 출력
* 0, 1, 2, 3, 4 → 5개
- union : 테이블 합치기
* 뒤의 칼럼 내용을 모를 때 많이 사용
* testtb 테이블에는 no 칼럼에 8 존재 X → testtb 테이블의 칼럼값만 나오고 내용은 uniontb 테이블 내용 출력
- SQL Injection : 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격할 수 있는 공격방식
* 1=1 은 참이므로 앞의 no=8이 없어도 모든 칼럼의 내용 출력
* 기본적으로는 id와 pass 가 데이터와 일치해야함
* 그러나 id를 알고있을 때 ID를 입력 후 pass 칸에 1=1(true)를 입력시 값을 비교하지 않는 논리식으로 변환됨
* ID를 모르는 경우도 어짜피 뒤에 오는 1=1이 True이기 때문에 모든 데이터 출력
[MySQL] MySQL DB + PHP 연동 (0) | 2022.05.25 |
---|