본문 바로가기
반응형

+ DataBase/MySQL(MariaDB)16

[MySQL] binlog 조회 / 삭제 / 보관 기간 설정 MySQL을 사용하다 보면 Binlog(바이너리 로그)가 디스크에 백업이 된다. 디스크의 용량이 크다면 크게 상관없겠지만, 디스크 용량이 적거나 아니면 백업되는 Binlog 사이즈가 큰 경우 결국 MySQL이 원활하기 구동될 수 있도록 디스크 관리를 해줘야 한다. 이때 Binlog(바이너리 로그)가 불필요하게 너무 많이 쌓이게 되면 삭제를 진행해줘야 한다. 이번에는 Binlog(바이너리 로그)에 대해서 조회 방법, 삭제 방법, 보관 기간 설정하는 부분을 알아보도록 하자. 그럼 먼저 Binlog(바이너리 로그)가 무엇인지 알아보자. 1. Binlog(바이너리 로그)란? 바이너리 로그는 MySQL 3.23.14 Version부터 도입되었으며, Create, Drop과 같은 DDL문과 Insert, Updat.. 2021. 12. 26.
[MySQL(MariaDB)] FORMAT 문법 사용 하기(숫자 자리수 나타내기) MySQL을 사용하여 개발을 하는 경우 특정 숫자나 Count 값에 대해서 출력을 하는 경우가 있다. 이때 데이터를 가지고 온 상태에서 Code(코드)상에서 숫자에 대해서 3자리마다 콤마를 설정 혹은 처리 할 수 있으나, 그것보다는 Query(쿼리) 구문을 통해서 숫자에 3자리에 콤마를 바로 설정하여 출력을 하는 편이 간결하고 가독성도 좋다.(물론 이해하기에도 더 쉽다) MySQL에서는 FORMAT 이라는 Function(함수)을 제공하고 있으며, 해당 Function은 "MySQL 4.0 이상"부터 사용이 가능하다. 그럼 어떻게 사용하는 간단히 알아보도록 하자. 1. FORMAT문 사용 방법 FORMAT문은 매우 쉽게 사용할 수 있다. 사용할 Column(컬럼) 앞에 FORMAT문을 넣어서 사용하면 끝.. 2021. 5. 24.
[MySQL] CASE 문법 사용 하기 MySQL을 사용하다 보면 Query(쿼리) 구문에서 Switch(스위치) 문 혹은 IF문과 같이 조건문을 사용하여 결과값을 내야 하는 경우가 있다. 물론 이런 거 없이 Query 하여 나온 결과를 가져와 Code(코드)상에서 처리할 수 도 있으나 그것보다는 Query로 나온 결과값을 바로 사용하는 편이 훨씬 간결하고 가독성도 좋다.(물론 이해하기에도 더 쉽다) MySQL에서는 CASE라는 Function(함수)을 제공하고 있으며, 해당 Function은 "MySQL 4.0 이상"부터 사용이 가능하다. CASE 문은 조건을 통과하고 첫 번째 조건이 충족되면 값을 반환한다. 조건에 따라 True(참)이면 읽기를 중지하고 결과를 반환하고, 조건이 True(참)가 아니면 ELSE 절의 값을 반환한다. ELSE.. 2021. 1. 22.
[MySQL/MariaDB] 데이터베이스별 / 테이블별 용량 확인 하기 MySQL/MariaDB을 사용하다 보면 현재 데이터베이스(Database) 혹은 테이블(Table)에 용량(Size)을 확인해야 하는 경우가 있다. DB(디비)가 올라가있는 시스템의 디스크 용량이 모자라거나, 아니면 백업(Backup) 혹은 마이그레이션(Migration) 할때 용량을 알아야 그에 맞게 대응을 할 수 있다. 2016/10/16 - [DataBase/MySQL(MariaDB)] - [MySQL] 데이터베이스 백업 하기(DataBase Dump) 그럼 데이터베이스 혹은 테이블별 용량을 확인하는 방법을 알아보도록 하자. 1. 데이터베이스(Database)별 용량 확인 2020/01/08 - [DataBase/MySQL(MariaDB)] - [MySQL] Concat 함수를 이용한 컬럼 합치기.. 2021. 1. 8.
[MySQL] sql_mode=only_full_group_by 에러 해결 방법 여러 서비스의 MySQL을 사용하다 보면 MySQL Version(버전)을 이동하면서 사용하게 된다. 이때 5.6 Version / 5.7 Version 도 같이 사용되는 경우가 있거나, 혹은 서비스 데이터베이스(DB)가 5.6에서 5.7 Version으로 업데이트(Update) 하여 서비스하는 경우도 있다. 근데 동일 GROUP BY 사용하는 Query(쿼리)를 5.6 Version에서는 정상적으로 실행 및 결괏값을 가지고 오나, 5.7 Version에서는 아래와 같은 에러(Error) 메시지가 발생되는 경우가 있다. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column XXX which is no.. 2020. 12. 22.
[MySQL] 데이터베이스(스키마) 조회 / 생성 / 삭제 하기(Database(Schema) show / create / drop) MySQL 데이터베이스(스키마) 조회, 생성 및 삭제 방법을 알아 보도록 하자. 우선 첫번째로 당연히 MySQL이 설치 되어 있어야 하며 설치 방법은 아래 내용을 통해서 알아보도록 하자. [DataBase/MySQL] - [MySQL] CentOS 8 Mysql Install 하기 1. 데이터베이스 조회 일단 본인이 생성을 하려고 하는 데이터베이스가 존재 하는지 먼저 조회를 해보도록 하자. 아래 명령어를 통해서 조회를 해보자. # Database(Schema) 조회 mysql> show databases; 2. 데이터베이스 생성 데이터베이스가 존재하지 않는 경우 새롭게 생성하여 사용할 수 있다. # Database(Schema) 생성 mysql> create database DB명 default char.. 2020. 9. 12.
[MySQL] CentOS 8 Mysql Install 하기 CentOS 8 시스템에 Mysql을 설치해보도록 하자. 1. yum 명령어를 통해 "mysql-server" 설치 [root@localhost ~]$ yum install mysql-server CentOS-8 - AppStream 8.4 kB/s | 4.3 kB 00:00 CentOS-8 - Base 7.3 kB/s | 3.9 kB 00:00 CentOS-8 - Extras 2.5 kB/s | 1.5 kB 00:00 Dependencies resolved. ====================================================================================================== Package Arch Version Repository Siz.. 2020. 6. 13.
[MySQL] Mysql ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 해결 하기 MySQL을 처음 설치 후 신규 계정을 등록을 하려고 할때, "ERROR 1819 (HY000): Your password does not satisfy the current policy requirements" 와 같은 에러가 발생하는 경우가 있다. mysql> CREATE USER 'test'@'%' IDENTIFIED BY '12test34'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements mysql> select Host, User from user; +-----------+------------------+ | Host | User | +-----------+------------------+ .. 2020. 6. 13.
[MySQL] Concat 함수를 이용한 컬럼 합치기 간혹 컬럼에 있는 데이터를 합쳐 하나의 컬럼으로 만들어 사용하는 경우가 있다. 이런 경우 Concat 이라는 함수를 이용하여 해당 내용을 처리 할 수 있다. 아래 예제를 살펴 보면 쉽게 이해 할 수 있다. # 사용법 CONCAT(컬럼1, 컬럼2...) # 예제 1. 문자열 $ SELECT CONCAT('Hello', '|', 'Good Morning', '!') as hello; Hello|Good Morning! 2. 컬럼 Table 내용 idx | type | desc 1 | hello | 영어 2 | 안녕하세요 | 한국 3 | bonjour | 프랑스 $ SELECT CONCAT(type, '|', desc) as hello; hello|영어 안녕하세요|한국 bonjour|프랑스 2020. 1. 8.
[MySQL] Union Query(유니온 쿼리)를 이용한 결과값 합치기(Sum) 쿼리(Query)문을 이용하여 각각 Count를 출력하여 Code상에서 합(sum)을 할 수도 있으나, Union 사용하여 Count 값만 가지와서 Sum을 할 수 있다. 이때 아래와 같이 사용함으로 결과값에 대한 Sum을 하여 사용 할 수 있다. # tb_user Count query> SELECT COUNT(*) as CNT FROM tb_user 10 # tb_admin Count query> SELECT COUNT(*) as CNT FROM tb_admin 3 # 두 테이블 합친 Count query> SELECT SUM(cnt) FROM ( SELECT COUNT(*) as CNT FROM tb_user UNION ALL SELECT COUNT(*) as CNT FROM tb_admin ) ad.. 2019. 8. 7.
[MySQL/MariaDB] Table Lock(테이블 락) 확인 및 해제 하기 MySQL/MariaDB을 사용하다보면 실수 혹은 어떠한 이유로 인해 Table(테이블)에 Lock(락)이 발생하는 경우가 있다. 이때, Lock이 발생한 Table 확인 및 Lock 해제를 할 수 있다. 우선 간략하게 확인 및 해제에 대해서 확인해 보자. 1. Lock Table 확인 SQL> SHOW FULL PROCESSLIST; Id User Host db Command Time State 507390 dev 127.0.0.1:60635 dev Query 1000 Waiting for table metadata lock 위와 같이 State 컬럼에 "Waiting for table metadata lock" 으로 인해 해당 Table에 대해서 쿼리가 진행되지 않음을 확인 가능 하다. 2. Lock.. 2019. 7. 24.
[MySQL] unsigned 의미 MySQL에서 컬럼 생성시 데이터형이 int를 사용하는 경우가 많다. int형을 사용하는 경우 대부분 음수는 거의 사용하지 않는다. int형의 범위는 -2147483648 ~ 2147483647 이다. 기본적으로는 ID 컬럼(Column)을 사용할때 많이 사용하고 있으며, unsigned를 설정시 int형의 범위는 0 ~ 4294967295 로 변경된다. 이와 같이 특별히 음수를 사용하는 경우가 아니라면 unsigned를 설정하여 사용하자 CREATE TABLE `tb_lists` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, ... 이하 생략 ... 2018. 1. 6.
[MySQL] Table Schema(테이블 스키마) 확인 MySQL을 사용하다보면 간혹 Table(테이블)의 Schema(스키마) 구조를 확인해야하는 경우가 있다. 이때 아래와 같은 방법으로 확인하도록 하자. 1. Table Schema 확인 mysql> show create table TABLENAME; 2017. 8. 1.
[MySQL] 데이터베이스 백업 하기(DataBase Dump) 1. 전체 Dump 진행 1.1 Local $mysqldump -u 아이디 -p 데이터베이스명 > 저장 파일명.sql -> $mysqldump -u root -p data > sql_dump.sql 1.2 Remote $mysqldump -h 원격 호스트 -u 아이디 -p 데이터베이스명 > 저장 파일명.sql -> $mysqldump -h xxx.xxx.xxx.xxx -u root -p data > sql_dump.sql 1.3 schema $mysqldump -u 아이디 -p -d 데이터베이스명 > 저장 파일명.sql -> $mysqldump -u root -p -d data > sql_dump.sql 2. 특정 테이블 Dump 진행 2.1 Local $mysqldump -u 아이디 -p 데이터베이스명.. 2016. 10. 16.
[MySQL] Unixtime / Date Type(형식) 변경하기 1. 현재시간 Unixtime값 구하기 mysql> select unix_timestamp(); +------------------+ | unix_timestamp() | +------------------+ | 1474073079 | +------------------+ 1 row in set (0.00 sec) 2. Unixtime을 Date형식으로 변환 mysql> select from_unixtime(1474073079); +---------------------------+ | from_unixtime(1474073079) | +---------------------------+ | 2016-09-17 09:44:39 | +---------------------------+ 1 row in se.. 2016. 9. 17.
[MySQL] INET 함수를 이용하여 IP 저장 및 사용법(정수 ↔ IP) 1. INET ATON 함수 - IP 주소를 정수로 변환하는 함수 mysql> SELECT INET_ATON('1.1.1.1'); +----------------------+ | INET_ATON('1.1.1.1') | +----------------------+ | 16843009 | +----------------------+ 1 row in set (0.00 sec) 2. INET NTOA 함수 - 정수를 IP 주소를 변환하는 함수 mysql> SELECT INET_NTOA(16843009); +---------------------+ | INET_NTOA(16843009) | +---------------------+ | 1.1.1.1 | +---------------------+ 1 row in.. 2016. 9. 17.
300x250
300x250

loading