분류 전체보기 1385

[MySQL] MySQL에서 SSL 인증서 사용하기

[MySQL] MySQL에서 SSL 인증서 사용하기 l Version : MySQL 8.0 MySQL에서 SSL 통신을 위해서는 인증서를 사용하게 되는데, 이때 인증서는 MySQL을 시작할 때 자동으로 생성되기도 하며, 수동으로 생성할 경우 openssl 등을 사용하여 생성할 수 있다. 또한 타사 서비스와 연동이 필요한 경우 타사의 인증서를 등록해서 사용할 경우가 있는데, 이때 pem 확장자 형식으로 인증서를 변환해서 사용할 수 있다. MySQL 시작 시 생성되는 인증서는 보통 데이터 디렉토리(data directory)에 생성되며 아래와 같은 인증서 파일이 생성된다. l ca.pem : self-signed CA cetificate l ca-key.pem : CA private key l private..

MySQL, MariaDB 2023.11.09

[MySQL] [InnoDB] Failed to create check sector file, errno:13 Please confirm O_DIRECT is supported 오류 및 해결

[MySQL] [InnoDB] Failed to create check sector file, errno:13 Please confirm O_DIRECT is supported 오류 및 해결 l Version : MySQL 8.0 MySQL을 시작할 때, 정상적으로 서비스가 시작되지 않았으며 아래와 같은 오류 로그를 확인할 수 있었다. [ERROR] [MY-012655] [InnoDB] Failed to create check sector file, errno:13 Please confirm O_DIRECT is supported and remove the file /var/lib/check_sector_size if it exists. Error 13에 대해서 찾아보면 공식 매뉴얼에는 퍼미션에 관련된 ..

MySQL, MariaDB 2023.11.02

[MySQL] MySQL 저장 프로시저 - 소개

[MySQL] MySQL 저장 프로시저 - 소개 l Version : MySQL MySQL 저장 프로시저와 장, 단점에 대해서 알아본다. 아래 스크립트는 테이블에 있는 데이터를 조회한다. SELECT customer_id, first_name, last_name, email FROM customer ORDER BY first_name; MySQL Workbench 또는 mysql 셸을 사용하여 MySQL Server에 쿼리를 실행하면 MySQL은 쿼리를 처리하고 결과 집합을 반환한다. 나중에 실행하기 위해 이러한 쿼리를 데이터베이스 서버에 저장하기 위해 저장 프로시저를 사용할 수 있다. 아래 스크립트에서 CREATE PROCEDURE 문은 위의 쿼리를 래핑하여 새 저장 프로시저를 만든다. DELIMITE..

MySQL, MariaDB 2023.10.23

[MySQL] MySQL에서 기본키로 UUID를 선택했을 때의 장단점 및 특징

[MySQL] MySQL에서 기본키로 UUID를 선택했을 때의 장단점 및 특징 l Version : MySQL PXC 8.0.X MySQL UUID에 대해서 알아보고 테이블의 기본키로 사용하는 방법 및 UUID를 기본키로 했을 때의 장단점에 대해서 알아본다. UUID는 universally unique Identifier의 약자로 RFC 4122를 기반으로 정의된다. UUID는 공간과 시간에 있어서 전 세계적으로 고유한 숫자로 설계되었다. 두 개의 UUID 값은 두개의 독립적인 서버에 생성되더라도 서로 구별되어야 한다. MySQL에서 UUID값은 다음 형식의 5개의 16진수 숫자로 구성된 utf8 문자열로 표시되는 128비트 숫자이다. aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee U..

MySQL, MariaDB 2023.10.20

[MySQL] MySQL PXC (Percona XtraDB Cluster) 5.7에서 8.0 업그레이드시 timeout 문제 및 해결 방법

[MySQL] MySQL PXC (Percona XtraDB Cluster) 5.7에서 8.0 업그레이드시 timeout 문제 및 해결 방법 l Version : MySQL PXC 8.0.X MySQL PXC (Percona XtraDB Cluster) 5.7환경에서 8.0으로 업그레이드 진행중에 발생한 이슈가 있어, 문제 및 해결 방법에 대해서 정리한다. [Problem] 기존에 운영중이던 MySQL PXC 5.7.X 버전에서 MySQL 8.0.X로 업그레이드 작업이 필요 했으며, 업그레이드를 위해 여러 상황을 검토한 결과 XtraBackup을 사용하여 백업(5.7) 및 복원(8.0)으로 진행하였다. 복원 과정 (리스토어 및 서비스 시작)에서 timeout 오류가 발생하였다. 해당 데이터베이스는 테이블..

MySQL, MariaDB 2023.10.19

[MySQL] MySQL의 다양한 주석(comment) 방법 살펴보기

[MySQL] MySQL의 다양한 주석(comment) 방법 살펴보기 l Version : MySQL MySQL 주석은 데이터베이스 스키마, SQL 쿼리 및 저장 프로시저를 문서화하는데 필수적이다. 특히 주석의 작성은 다른 개발자가 코드의 목적을 이해하는데 도움이 된다. [한 줄 주석] 한 줄 주석은 한 줄에 주석을 추가하는데 사용된다. MySQL은 두가지 유형의 한 줄 주석을 지원한다. -- (하이픈 두개) : 두개의 하이픈 뒤에 텍스트는 주석으로 사용되며, 같은 줄에 이어지는 모든 텍스트는 주석으로 처리 된다. -- This is a single-line comment SELECT * FROM employees; # (해시) : 해시 기호를 사용하여 한 줄 주석을 추가할 수 있다. 같은 줄에 이어지는..

MySQL, MariaDB 2023.10.18

[MySQL] MySQL(mariadb) Galera Cluster 장애 시나리오에 따른 다양한 복구 방법

[MySQL] MySQL(mariadb) Galera Cluster 장애 시나리오에 따른 다양한 복구 방법 l Version : MySQL(mariadb) Galera Cluster Galera Cluster는 동기 복제를 사용하여 데이터를 복제하는 MySQL, MariaDB용 다중 마스터 클러스터이다. Galera Cluster를 사용하면 클러스터의 모든 노드가 마스터 역할을 하고 한 번에 모든 노드에 쓸 수 있다. Galera Cluster의 Active-Active 구성은 장애 조치가 없기 때문에 더 많은 로드 밸런싱과 내결함성을 제공한다. l MySQL/MariaDB 환경에서 다중 마스터 복제를 지원하는 Galera Cluster 알아보기 : https://sungwookkang.com/entry..

MySQL, MariaDB 2023.10.17

[MySQL] MySQL 오류 로그 이해

[MySQL] MySQL 오류 로그 이해 l Version : MySQL 시스템을 운영할 때, 오류를 완벽히 피하기는 거의 불가능에 가깝다고 생각한다. 그렇다면 문제가 발생하였을 때, 문제의 원인을 빠르게 파악하고 해결하기 위해서 가장 먼저 하는 행동은 무엇일까? 정답은 각종 로그를 확인하는 것이다. 이번 포스트에서는 MySQL 오류 로그를 통해 어떠한 정보를 확인할 수 있는지 알아본다. 이 글에서는 오류 로그는 5.6버전을 설명하고 있지만, 이후 버전에서도 충분히 활용할 수 있다고 판단된다. 모든 오류 내용을 다루지는 않지만 예제에서 확인할 수 있는 몇 가지 정보를 공유한다. MySQL 오류 로그에는 MySQL 상태 및 활동과 관련한 다양한 정보가 기록되어 있다. 정상적인 MySQL 시작, 종료에 대한..

MySQL, MariaDB 2023.10.16

[MySQL] ProxySQL 연결이 실패할 때 확인해야 할 기본 체크리스트

[MySQL] ProxySQL 연결이 실패할 때 확인해야 할 기본 체크리스트 l Version : ProxySQL MySQL서버를 여러대로 구성해야하는 경우 (예, Replication, Sharding 등) 어플리케이션 수에 따라 MySQL 서버와 맺게 되는 커넥션수가 급격하게 늘어난다. 예를들어 MySQL 서버가 30대, 어플리케이션 서버가 200대이고, 각 서버별로 커넥션을 10개씩 유지한다면 30 * 200 * 10 = 60000 커넥션이 발생한다. 이런 이슈를 피하기 위해 중간에 미들웨어 개념으로 프록시 역할을 해주는 것이 ProxySQL이다. ProxySQL은 효율적인 커넥션 관리뿐만 아니라 라우팅 기능 등 여러 기능을 제공한다. l ProxySQL 이란 무엇인가 : https://sungwo..

MySQL, MariaDB 2023.10.11

[MySQL] MySQL Percona XtraDB Cluster 소개 및 설정 변수 알아보기

[MySQL] MySQL Percona XtraDB Cluster 소개 및 설정 변수 알아보기 l Version : MySQL Percona 8.X Percona XtraDB Cluster는 MySQL을 위한 완전한 오픈 소스 고가용성 솔루션으로 MySQL용 Percona Server 및 Percona XtraBackup을 Galera 라이브러리와 통합하여 동기식 다중 소스 복제를 가능하게 한다. Galera 라이브러리에 대한 내용은 아래 링크를 참고한다. l MySQL/MariaDB 환경에서 다중 마스터 복제를 지원하는 Galera Cluster 알아보기 : https://sungwookkang.com/entry/MySQLMariaDB-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-..

MySQL, MariaDB 2023.09.27