Database/MySQL 18

ibd2sdi

1. ibd2sdi ibd2sdi는 테이블스페이스의 SDI(serialized dictionary information)를 JSON형태로 추출하는 프로그램입니다. INNODB의 경우 idb파일에 스키마 정보가 같이 포함되어 있는데 이부분을 추출하는 프로그램입니다. INNODB의 테이블 스페이스는 innodb_file_per_table에 따라 생성의 차이가 발생합니다. mysql 8.x부터는 innodb_file_per_table의 기본값이 ON이며 보통 디스크 사용량 등을 줄이기 위해서 innodb_file_per_table를 사용합니다. (myISAM은 따로 SDI 파일이 존재함.) 1) INNODB 테이블 스페이스 SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESPA..

Database/MySQL 2022.11.25

mysqlslap

1. mysqlslap mysqlslap는 mysql 서버에 부하를 발생시켜 서버의 성능 및 벤치마크를 확인 할 수 있는 프로그래입니다. mysqlslap --delimiter=";"\ --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)"\ --query="SELECT * FROM a" --concurrency=50 --iterations=200 mysql.com에 올라온 샘플을 우선 보면 a라는 테이블을 만들고 a에 23을 넣은 후에 "SELECT * FROM a"를 50개의 세션에서 200번 수행하는 것입니다. Benchmark Average number of seconds to run all queries: 0.003 seconds Minimum..

Database/MySQL 2022.11.25

MySQL Shell (1) - 설치

linux os : rocky linux mysql : mysql 8.0.31 1. mysql shell mysql shell은 mysql 8부터 추가된 mysql 전용 shell 프로그램입니다. mysqlsh는 자바스크립트, 파이썬의 언어를 지원하며 mysql 설치 후에 추가 설치를 해야 사용 가능합니다. 1) 설치 # dnf install mysql-shell Last metadata expiration check: 0:28:57 ago on Mon Nov 21 13:04:36 2022. Dependencies resolved. =================================================================================================..

Database/MySQL 2022.11.21

mysqlcheck

1. mysqlcheck mysqlcheck은 mysql의 테이블 등에 오류 분석 또는 해결 및 최적화를 해주는 프로그램입니다. 1) 사용법 mysqlcheck [옵션]--all-databases mysqlcheck [옵션] 데이터베이스 [테이블] 2) 주요 옵션 -c(기본 옵션) CHECK TABLE - 테이블에 오류가 있는지 확인합니다. -r REPAIR TABLE - 테이블의 오류를 수정합니다. -a ANALYZE TABLE - 테이블의 통계를 생성합니다. -o OPTIMIZE TABLE - 테이블 및 인덱스의 물리적 스토리지를 재구성하여 공간 확보 및 I/O 효율성을 증가 시킵니다. 옵션에 따라서 Lock이 발생하는 것이 있으므로 SQL 명령어의 레퍼런스를 참고해서 사용하여야 합니다.

Database/MySQL 2022.11.18

mysqladmin

1. mysqladmin mysqladmin은 mysql에서 관리자로 사용하는 명령어들을 실행시켜주는 프로그램입니다. 제가 가장 많이 사용하는 경우는 FLUSH LOGS; 명령으로 error.log 파일을 flush하고 log를 백업하는 스크립트에서 사용하였습니다. 1) 사용방법 $ mysqladmin -uroot -p [명령어] 2) 명령어 정리 create databasename - database를 생성한다. debug - 사용 안해 봄. drop databasename - 데이터베이스를 삭제한다. extended-status - SHOW GLOBAL STATUS; 명령어와 동일한 서버의 상태 값을 보여준다. flush-hosts - TRUNCATE TABLE performance_schema.ho..

Database/MySQL 2022.11.17

mysql_tzinfo_to_sql

1. mysql_tzinfo_to_sql mysql_tzinfo_to_sql 프로그램은 mysql에서 사용하는 time zone 을 설정 할 수 있는 정보를 mysql server에 제공합니다. 기본값은 시스템 타임 존(system_time_zone)을 따라가는 SYSTEM으로 설정이 되어 있습니다. mysql> show VARIABLES LIKE '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | KST | | time_zone | SYSTEM | +------------------+--------+ 서버의 time_zone은 서버에서 사..

Database/MySQL 2022.11.17

mysql_secure_installation

1. mysql_secure_installation mysql_secure_installation은 mysql에서 제공하는 보안 관리 프로그램입니다. 예전에는 mysql에서 익명 계정 및 test DB가 자동으로 설정되어서 설치 이후에 반드시 실행해서 익명 사용자 및 test DB를 제거 했지만 현재는 이런 계정 및 데이터베이스가 설치되지 않기 때문에 많이 사용되지는 않습니다. mysql_secure_installation은 다음의 기능을 포함하고 있습니다. 1) root password 변경 2) root 계정의 외부 액세스 계정 삭제(`root`@`localhost`를 제외한 계정) 3) 익명 사용자 계정 삭제 4) test 데이터베이스의 삭제

Database/MySQL 2022.11.17

mysql 8.x - mysql_config_editor

1. mysql_config_editor mysql을 사용하면서 백업이나 배치 등으로 서버에 접근해서 정보를 얻거나 작업을 진행해야 하는 경우가 발생합니다. 이런 경우 스크립트에 user, password 정보가 평문으로 들어가게 됩니다. 이런 경우 보안에 심각한 문제가 발생할 수 있습니다. 특히 시스템의 정보를 가져오거나 하는 경우는 계정의 권한이 root 또는 그에 상응하는 권한이 할당되어야 하는 경우가 많습니다. 이런 경우를 대비해서 mysql은 mysql의 권한 정보를 저장해 두고 사용 할 수 있는 방법을 제공하고 있습니다. 물론 이것도 문제가 없는 것은 아니지만 최소한의 보안으로 평문의 계정정보 노출을 막을 수 있습니다. # 계정 정보 생성 $ mysql_config_editor set --lo..

Database/MySQL 2022.11.16