MySQL
Percona Server
Maria DB
3개 회사의 솔루션이 기본 코드를 공유하면서도 각자 조금씩 다른 기능들을 가지고 있다.
MySQL 5.x의 데이터 파일과 .FRM 파일(테이블 정의 파일)은 MariaDB 5.x와 호환된다.
MySQL 5.x 와 Maria DB 5.x는 옵티마이저나 스토리지 엔진에서 상당한 차이가 있다.
HeidiSQL : MariaDB 10.0 버전 이상에서 설치되는 GUI 클라이언트 툴
mysql_upgrade : 업그레이드를 위한 유틸리티
InnoDB : 종료되었다가 나중에 다시 시작될 때 트랜잭션 로그
사용자의 식별
계정은 사용자의 접속 지점도 계정의 일부가 된다. 예) `svd_id`@`127.0.0.1`
여러 개의 계정 중 하나로 접속하기 위해서는 권한과 계정정보가 작은 것을 선택한다.
예) 아래의 두개의 계정 중 권한과 계정 정보가 적은 1번으로 로그인한다. 패스워드를 abc로 하게되면 비밀번호 불일치 로 오류가 난다.
1. `svc_id`@`192.168.0.10` 패스워드 : 123
3. `svd_id`@`%` 패스워드 : abc
명령어
## 시작
shell> sh ${MYSQL_HOME}/support-files/mysql.server start
## 종료
shell> sh ${MYSQL_HOME}/support-files/mysql.server stop
shell> mysqladmin -u root -p shutdown
## database 조회
show databases
## 권한 부여
mariadb> GRANT privilege_list on db.table to `user`@`host`;
mariadb> GRANT privilege_list on db.table to `user`@`host` identified by `password` with grant option;
(with grant option : 다른 사용자에게 권한을 부여할 수 있는 권한)
mariadb> GRANT SUPER *.* to `user`@`localhost`;
maria db는 특정 컬럼에만 권한도 부여 가능하다. => 그러나 권장하지 않는다. 왜냐하면 나머지 모든 컬럼에 대해서도 권한 체크가 발생하기 때문에 성능상에 느리다. 컬럼 단위의 접근이 필요하다면 view를 만들어 사용하는 것을 권장한다.
mariadb> SHOW DATABASES;
information_schema : 테이블 정보, 스토어드 프로그램 정보가 같은 정보 조회 가능(오라클의 딕셔너리뷰와 동일)
mysql : MariaDB 서버의 사용자 인증 정보 스토어드 프로그램과 이벤트 정보 타임존이나 복제에 관련된 정보 저장.
peroformance_schema :
test : MariaDB의 디폴트 DB로 아무런 오브젝트가 없다. 삭제하는 것이 낫다.
root 관리자 계정은 너무 많이 알려져 있기 때문에 별도의 아이디를 이용해 관리자 계정을 준비하는 것이 좋다.
FLUSH privilege;
=> grant 명령 실행시 실행이 되지 않을 경우 이 명령을 실행하면 실행 가능한 경우가 있다.
IF NOT EXISTS : CREATE TABLE 구문에 조건을 포함시킬 수 있는데, 생성하려는 테이블이나 칼럼이 이미 있는 경우는 에러를 발생시키지 않고 경고 메시지만 발생시킨다.
CREATE TABLE IF NOT EXISTS tab_test (
....
) ENGINE = InnoDB; => 스토리지 엔진을 지정
스토리지 엔진의 종류
Inno DB :
XtraDB :
## 테이블의 정보를 보기 위한 명령어
SHOW CREATE TABLE 테이블명 ;
DESC 테이블명;
데이터 타입
oracle | maria db | |
number | int | |
varchar, varchar2 | varchar | |
참고문서 및 사이트
Migrating to MariaDB : https://www.apress.com/gp/book/9781484239964#aboutBook
궁금한 점
MySQL -> Maria DB Winback이 가능한가?
Shareplex는 이기종 DB의 동기화가 가능한가?
=> Oracle to Maria DB는 가능하다.
앞으로 Maria DB의 기술지원 형태는 어떻게 될 것인가?
업그레이드 방식은 어떻게 되는가?
Maria DB도 HA 구성을 할 수 있는가?
파라미터는 어떻게 설정, 변경할 수 있는가?
딕셔너리 뷰는 존재하는가?
파티셔닝은 가능한가?
Maria DB의 기술지원 금액 및 기술지원의 범위는 어떻게 되는가?(타사 사례)
Maria DB에서의 Database의 개념은 Oracle의 Database와 어떻게 다른가?
DB시장의 Market share는 어떻게 되는가?
https://db-engines.com/en/ranking
참고문서
autocommit : https://slobell.com/blogs/41