DB 종류
SQL: Oracle, MS-SQL, Mysql/MariaDB, PostgreSQL,
NoSQL: MongoDB, Redis, ....
RDBMS 종류
상용: Oracle Oracle 19c, MS-SQL, IBM DB2
무료: MySQL/MariaDB, PostgreSQL
DB 관련 용어
DB S/W
DB
Table
Data(Column, Row)
SQL(Structed Query Language)
종류:
DDL(Data Definition Language): create, drop, alter
DML(Data Manipulation Language): select, insert, update, delete
DCL(Data Control Language): grant, revoke, commit, rollback
대표적인 DB Listener Port
Oracle: 1521/tcp
MS-SQL: 1433/tcp
Mysql/MariaDB: 3306/tcp
PostgreSQL: 5432/tcp
MongoDB: 27017/tcp
Redis: 6379/tcp
CRUD(Create Read Update Delete)
key(index)
PK(primary key)
UK(Unique Key)
FK(Foreign Key)
패키지 설치
# yum -y install mariadb mariadb-server
서버 기동
# systemctl enable --now mariadb
서비스 설정
# mysql_secure_installation
방화벽 등록
# firewall-cmd --premanent --add-service=mysql
SELinux(?)
패키지: mariadb-server ,mariadb
데몬 & 포트 & 프로토콜: mysqld(3306/tcp)
주 설정 파일: /etc/my.cnf
하위 설정 파일: /etc/my.cnf.d/* .cnf
서비스: mariadb.service
[ex] 기본 설정 확인
[ex] mysql_secure_installation 스크립트
[ex] mysql sample database 다운로드 && import
[ex] WEB-DB 연동
[참고] https://www.w3schools.com/php/php_mysql_connect.asp
[ex] DB 관리
DB 목록 확인
show databases;
DB 선택
use DBname;
select database(); // 현재 DB 확인
select version(); // 버전 확인
DB 생성
create database newDBname;
DB 삭제
drop database DBname;
Table 확인
show tables;
desc tables;
select * from testtable;
Table 생성
create table testtable(id int not null, name char(10);
Table 이름 변경
rename table testtable to renametable
[참고][alter table](https://velog.io/@leekt0321/DB-%EC%86%8D%EC%84%B1-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0-xk03lz36)
Table 삭제
drop table renametable;

Table 내용 입력
insert into tablename(id,name,passwd) value ( 1, 'lee', '1234');
Table 내용 업데이트
update tablename set name='kim', passwd='4321' where id=1;
Table 내용 삭제
delete from tablename where id=3;
사용자 생성
create user user1@localhost
create user user@'%' identified by 'passwd' // 원격 호스트 생성
사용자 암호 변경
alter user user@'%' identified by 'passwd';
사용자 삭제
drop user user@'%';
사용자 권한 부여
grant all privileges on DB.TABLE to user@'%';
사용자 권한 제거
revoke all privileges on DB.TABLE from user@'%';
사용자 권한 확인
show grants;
show grants for user@'%';
DB 인증 실패
1) 방화벽
2) /etc/my.cnf, /etc/my.cnf.d/* .cnf (mysqld 섹션)
bind_address=0.0.0.0
skip-networking=1
3) 사용자 이름 점검
4) 사용자 암호 점검
DB 권한 싪패
1) 사용자 권한 확인
(전체 DB 백업)
# mysqldump -u root -p --add-databases > /backup/FullDB.dump
-> Logical DB Restore
(DBNAME 복원) 사전에 DB 생성
# mysql -u root -p newDBNAME < /backup/DBNAME.dump
(전체 DB 복원)
# mysql -u root -p < /backup/FullDB.dump
[참고]
mysql CMD
mysqladmin CMD
mysqldump CMD