본문 바로가기
반응형

Database/MYSQL225

Mysql Incorrect integer value 에러 발생시 에러 나오지 않게 하려면? 안녕하세요. Mysql 버젼을 업그레이드하고나서 발생할때 뭐지 하면서 놀라기도 하는데요. SQL 사용에 대한 보안 등급이 높아지면서 해당 부분이 기본설정으로 되어 있어서 발생하게 됩니다. 하지만 가능하면 입력 컬럼 input data type에 맞게 호출하시면 좋을것 같습니다. 우선 에러 발생을 안하게 하는 방법을 알려드릴께요. # 에러 내용 Incorrect integer value: '' for column 'memChnl' at row 1 ...... 해당 내용의 경우 int 컬럼에 값이 잘못 입력이 된 상태로 실행되었기 때문이기에 해당 값을 int 형으로 맞춰주거나 아니면 에러를 무시 하도록 해야합니다. ​ ​ # 설정 확인 (Mysql 5.7 기준) ​ select @@global.sql_mod.. 2024. 2. 29.
Mysql 5.7 Old_password 대체용 function Mysql 5.7 상위 버젼부터는 Old_password 함수가 없어졌기 때문에 그전에 사용했었다면 대체 가능한 함수를 만들어서 사용해야합니다. DROP FUNCTION IF EXISTS OLD_PASSWORD; DELIMITER $$ CREATE FUNCTION OLD_PASSWORD (input BLOB) RETURNS CHAR(16) DETERMINISTIC BEGIN DECLARE nr BIGINT; DECLARE nr2 BIGINT; DECLARE ad BIGINT; DECLARE inlen INT; DECLARE i INT; DECLARE b CHAR; DECLARE tmp INT; DECLARE output CHAR(16); SET nr = 1345345333; SET nr2 = 0x1234.. 2024. 2. 15.
정규표현식(영어만 표현, 숫자만 표현 등) 정규 표현식 잘 사용하면 정말 최고랍니다. 메타문자 기능 설명 . 문자 1개의 문자와 일치한다. 단일행 모드에서는 새줄 문자를 제외한다. [ ] 문자 클래스 "["과 "]" 사이의 문자 중 하나를 선택한다. "¦"를 여러 개 쓴 것과 같은 의미이다. 예를 들면 [abc]d는 ad, bd, cd를 뜻한다. 또한, "-" 기호와 함께 쓰면 범위를 지정할 수 있다. "[a-z]"는 a부터 z까지 중 하나, "[1-9]"는 1부터 9까지 중의 하나를 의미한다. [^ ] 부정 문자 클래스 안의 문자를 제외한 나머지를 선택한다. 예를 들면 [^abc]d는 ad, bd, cd는 포함하지 않고 ed, fd 등을 포함한다. [^a-z]는 알파벳 소문자로 시작하지 않는 모든 문자를 의미한다. ^ 처음 문자열이나 행의 처음.. 2024. 1. 15.
[MySQL] CHECK TABLE & Repair TABLE ■ CHECK TABLE 명령 CHECK TABLE tbl_name [, tbl_name] ... [option] ... option: { FOR UPGRADE | QUICK | FAST | MEDIUM | EXTENDED | CHANGED } CHECK TABLE은 테이블에 오류가 있는지 확인합니다. MyISAM 테이블의 경우 주요 통계도 업데이트됩니다. CHECK TABLE은 뷰 정의에서 더 이상 존재하지 않는 테이블을 참조하는 문제같은 것들을 확인할 수도 있습니다. 테이블을 확인하려면 테이블에 대한 권한이 있어야합니다. CHECK TABLE은 InnoDB, MyISAM, ARCHIVE 및 CSV 테이블에서 작동합니다. InnoDB 테이블에서 CHECK TABLE을 실행하기 전에 InnoDB 테이블에.. 2024. 1. 12.
MySQL 5.6에서 5.7로 업그레이드한 방법 블로그를 보다 유익한 정보가 있어서 스크랩 해봅니다. 정말 도움 되는 글 같아요. 본문 내용입니다. 어제 Synthesio Coffee Team은 Percona 5.6에서 Percona 5.7로 22TB MySQL Cluster 업그레이드를 완료했습니다. 우리는 이미 대부분의 클러스터를 업그레이드 했고 시간이 걸리는 것을 알고 있었지만 9개월이나 걸릴 것으로 생각하지는 않았습니다. 이것은 다운타임 없이 거대한 데이터베이스 클러스터를 마이그레이션하는 것에 관해 우리가 배웠던 것입니다. 초기 설정 우리의 데이터베이스 클러스터는 고전적인 고 가용성 3+1 노드 토폴로지로서 HAProxy를 이용합니다. 이것은 Systemd없이 Debian Jessie에서 4.9.1 커널 (처음에는 4.4.36)에서 실행됩니다... 2024. 1. 8.
MySQL/MARIADB auto_increment_increment, auto_increment_offset 설정 듀얼 마스터 구성에서 auto_increment 에 대한 에러가 발생하게되는데 이때 시작과 변동폭을 지정해줘야 합니다. Auto_increment 가 2씩 증가해야 대문에 auto_increment_increment 설정이 2로 되어있어서 2씩 증가 하도록설정 하고 또한 시작점을 지정해줘야 2씩 증가를 하겠죠? mysql> SHOW VARIABLES LIKE 'auto_inc%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 2 | | auto_increment_offset | 1 | +-------------------.. 2023. 9. 18.
Mysql procedure LEAVE 처리 하는 방법 안녕하세요. 프로시져를 사용하면서 트랜잭션을 이용해서 롤백을 해도 되지만 Myisam이나 다른 엔진을 사용할경우 롤백없이 그냥 에러처리를하고 싶거나 아니면 그냥 프로시져를 중단하고 싶을때 사용해도 될것 같아서 공유합니다. 명령문 LEAVE은 지정된 레이블을 이용해서 종료 처리 LEAVE label; CREATE PROCEDURE sp_name() sp: BEGIN IF condition THEN LEAVE sp; END IF; -- other statement END$$ label명을 sp로 생성해서 해당 에러가 발생시 종료 시키는 예시 프로시져입니다. DELIMITER $$ CREATE PROCEDURE CheckCredit( inCustomerNumber int ) sp: BEGIN DECLARE c.. 2023. 9. 5.
InnoDB 전문 검색 : N-gram Parser 기본 InnoDB 전문 검색(Full Text) 파서는 공백이나 단어 분리자가 토큰인 라틴 기반 언어들에서는 이상적이지만 개별 단어에 대한 고정된 구분자가 없는 중국어, 일본어, 한국어(CJK)같은 언어들에서는 각 단어는 여러개의 문자들의 조합으로 이루어집니다. 그래서 이경우엔 단어 토큰들을 처리할 수 있는 다른 방법이 필요합니다. 우리는 CJK에서 사용할 수 있는 n-gram 파서를 제공하기 위한 새로운 플러그블 전문 파서(pluggable full-text parser)를 MySQL 5.7.6 에서 제공할 수 있게되어 정말 기쁩니다. N-gram이 정확히 뭘까요? 전문 검색에서 n-gram은 주어진 문자열에서 n개 문자의 인접한 순서입니다. 예를들어 n-gram 을 이용해 우리는 “abcd” 문자열을.. 2023. 9. 2.
SQL Injection A1Injection (인젝션)SQL, OS, XXE(Xml eXternal Entity), LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로써, 인터프리터로 보내질 때 발생한다. 공격자의 악의적인 데이터는 예상하지 못하는 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있다. Injection은 주입이라는 뜻으로, SQL 언어를 주입하여 해킹을 하는 기법을 뜻한다. 방어방법. Statement 대신, PreparedStatement같이 안전한 구문을 사용한 보안코딩 사용. statement구문을 사용시에는 꼭 컬럼값에 Injection을 유발할 수 있는 '(외따옴표) ;(세미콜론) 같은 DB에서 사용하는 특수문자 값을 제거하여 보안성 강화 그외 .. 2023. 8. 28.
Mysql 이메일 검사 및 정규표현식 정규표현식? 1. 정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 쓰이는 형식 언어 2. 문자열을 처리하는 방법 중의 하나 3. 특정한 조건의 문자를 ‘검색’하거나 ‘치환’할 때 사용 4. mySQL에서는 REGEXP라는 키워드를 사용하여 정규표현식을 처리함 이메일주소 정규표현 검사 SELECT 'abcdefg@gmail.com' REGEXP '^[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9._-]@[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]\\.[a-zA-Z]{2,4}$'; SELECT 'abcdefg@gmail.com' REGEXP '^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$'; #정규 표현식으로 지정된 메일 조소인지.. 2023. 8. 17.
Mysql Error Log logging 옵션 log_warnings, log_error_verbosity 안녕하세요 오늘은 Mysql Error Log logging하는 옵션에 대해서 알아볼께요. 에러만 기록할수도 있고 에러와 경고, 아니면 모든 Note 로그까지 기록하는 옵션이 있답니다. System variables –log_warnings[=#] 에러 로그에 경고 메시지를 생성하는 옵션으로 기본값은 5.7.2이전에는 1, 이후에는 2로 활성되어있다. 5.7.2부터 log_warnings에 의해 관리되는 정보는 log_error_verbosity에 의해 관리되며 log_error_verbosity는 이전 log_warnings 보다 우선 사용된다. log_warnings에 값을 할당하면 log_error_verbosity에도 할당이 되며 반대의 경우에도 마찬가지로 적용된다. log_warnings=0은 .. 2023. 8. 1.
Mysql - procedure 사용법 - 2 안녕하세요. 오늘은 프로시져 사용에 대한 두번째 자료를 업로드 할려고 합니다. 너무 자세한 설명보다는 사용 가능한 부분위주로 설명을 하기 때문에 부족한 부분이 많을거에요. 부족한부분은 다른 글이나 구글링을이용해주세요 TRANSACTION 실행부 1. 수행된 데이터 작업들을 DB에 적용할지 취소할지 결정하는 처리부 2. COMMIT: 하나의 트랜잭션이 성공적으로 끝났을 때 사용 3. ROLLBACK : 비정상적으로 종료되어 다시시작하거나 연산을 취소할 때 사용 Delimiter ~ Begin DELIMITER $$ 구분자 USE `DB_NAME`$$ // 사용할 디비명 DROP PROCEDURE IF EXISTS `p_프로시져명`$$ // 같은 이름이 있으면 삭제 CREATE DEFINER=`생성자`@`생.. 2023. 8. 1.
Mysql - Stored Procedure 사용 방법 - 1 안녕하세요. Mysql DB를 정말 오랬동안 사용하고 있는데요. 처음 나왔을때는 아니겠지만 버젼 4부터 사용해서 버젼 8까지 지금까지 사용하고있는듯합니다. 처음에는 DB 테이블이 수시로 깨지고 했었는데 5.5 이후부터 안정적인 서비스 운영이 가능해지면서 지금은 많은 업체에서 사용하고 있는것 같아요. 오늘은 Mysql Stored Procedure 사용 방법에 대해서 알아보도록 하겠습니다. •프로시저는 절차형 sql 을 활용하여 특정 기능을 수행 할 수 있는 트랜잭션 언어. •일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합. •프로시저는 호출을 통해 실행. 프로시저 의 장점 1. Stored procedure를 처음 호출하면 MySQL은 DB의 catalog에서 이름을 찾아서 Stored p.. 2023. 7. 28.
2023년 상반기 한국인이 가장 많이 사용한 앱 & 다양한 소식 안녕하세요. 2023년 7월도 이제 몇일 남지 않았네요. 오늘은 이런 정보들을 중심으로 고려해보면 어떨까 싶어요. 자금 블랙홀 전락한 IPO 시장 > 40개 기업 시가총액 90조 증발 > 2020년 이후 코스피시장에 상장한 61개 기업 중 40개가 상장 직후 시총 하락 > 수익성 검증 안된 기업의 졸속상장 > 상장 심사를 맡고 있는 거래소의 철저한 기업심사가 필요 일부 기업은 IPO로 자금을 조달하고도 ‘매출 0원’을 지속하거나, 자금난에 유상증자를 단행하며 일반 투자자들 피해를 초래를 했던적이 있기에 더 철저한 심사를 진행하나봅니다. 2023년 상반기 한국인이 가장 많이 사용한 앱 > 카카오톡, 유튜브, 네이버, 쿠팡, 네이버 지도 순 > 2023년 상반기 가장 많이 사용한 앱은 ‘카카오톡’(월 평균 .. 2023. 7. 27.
MYSQL - DML 명령어1(Data Manipulation Language), DCL 안녕하세요. 이번에는 MYSQL - DML 명령어1(Data Manipulation Language) 종류에 대해서 알아볼건데요. 전체적으로 전부 알아보면 좋겠지만 그래도 필요한 부부분 위주로 알아보도록 하겠습니다. SELECT 기본 사용법 # 기본 선택 명령어(table_name 테이블에서 모두 가져오기) SELECT * FROM [table_name]; # WHERE문 포함 선택 명령어(table_name 테이블에서 name이 '반화넬'인 값 가져오기 SELECT * FROM [table_name] WHERE name='반화넬'; SELECT * FROM [table_name] WHERE name LIKE '반화넬'; # 애매한 것도 모두 선택하는 명령어(table_name 테이블에서 name에 '반.. 2023. 7. 27.
Mysql- Data Definition Language(DDL) 안녕하세요. 지금까지 Mysql 설치를 알아보았는데요. 이제는 Mysql- Data Definition Language(DDL)에 대해서 알아볼까 합니다. DDL, DML, DCL등 알아야 할건 많겠지만 그래도 하나씩 알아둔다면 많은 도움이 될거라 생각됩니다. DATABASE 명령어 # 데이터베이스 생성 명령어 CREATE DATABASE [dbname]; # 데이터베이스 생성 및 속성 설정 명령어 CREATE DATABASE [dbname]CHARACTER SET utf8mb4COLLATE utf8mb4_unicode_ci; # 테이블 생성 명령어 Drop table member_basic; CREATE TABLE member_basic ( auto_no INT PRIMARY KEY AUTO_INCRE.. 2023. 7. 26.
Mysql 알아가기 - Mysql control Monitoring Explain 등 안녕하세요. 지금가지 Dual Master 구성을 진행 했었는데요. 가능하면 듀얼 마스터를 순환형으로 구축을 한번 해보는것도 좋을것 같다는 생각이 듭니다. 가능하면 여러번 연습해서 내꺼로 만드는걸 강력하게 추천 드립니다. 이번에는 Mysql의 control, Monitoring, Explain등 추가적인부분을알아볼까합니다. Table Design - control – 대용량 MySQL instances/schemas/tables을 관리하는 추가 코스트 ( > 2TB) – 데이터 사이즈가 커짐에 따라 인덱스 구조가 더 넓어지고 깊어짐, 모든 SQL 작업에 영향 – 사용 하지 않는 이력 데이터에 대해서 삭제하거나 아카이브 성능 저하 – 신속하게 늘어나는 테이블에 대해서 대책을 세워야 함 – 파티션 테이블을 .. 2023. 7. 25.
Mysql 알아가기 - 1단계 (Information_schema, Table, Column, Index 등) 1차 안녕하세요. 지금가지 Dual Master 구성을 진행 했었는데요. 가능하면 듀얼 마스터를 순환형으로 구축을 한번 해보는것도 좋을것 같다는 생각이 듭니다. 가능하면 여러번 연습해서 내꺼로 만드는걸 강력하게 추천 드립니다. 이번에는 Mysql 에 대해서 자세히 알아갈건데요. Information_schema, Table, Column, Index 등 기본 Design 구조부터 해서 항목들 설명을 진행하게 될것 같습니다. 순서는 아래 순서지만 이번글에 모두 포함되진 않으니 참고하시고 읽어주세요. 1.Information_schema 설명 2.Table, Column 정의 방식 3.Index 정의 방식 4.Table Design 방식 > 기본정의 , 추가 방식, Indexing > Control, Monite.. 2023. 7. 25.
Mysql Dual master – slave replication - 3단계 안녕하세요. 오늘은 간단하게 Mysql Dual master – slave replication 구성하는 방법을 단계별로 알아보고 있는데요. 이번에는 복제 연동시, 듀얼 마스터 연동시 나올만한 에러 사항들을 확인해보 넘어가도록 하겠습니다. 복제 구성 연동 - 에러 # error1 Last_IO_Errno: 2003 Last_IO_Error: error connecting to master 'master@192.168.152.128:3306' - retry-time: 60 retries: 3 message: Can't connect to MySQL server on '192.168.152.128:3306' (111) # blind address 주석처리 # bind-address 부분을 주석처리하면 모든 .. 2023. 7. 24.
Mysql Dual master – slave replication - 1단계 안녕하세요. 오늘은 간단하게 Mysql Dual master – slave replication 구성하는 방법을 단계별로 알아볼까 합니다. 차근 차근 따라 하시면 쉽게 구성 가능하실거에요. 사용 프로그램 Dual master replication 구성 가상머신 : VMware-player-full-16.2.1-18811642 OS : ubuntu-20.04.3-desktop-amd64 SQL Client : SQLyog-13.1.8-0.x64Community 복제 서버 구성 시작 PC에서 설치를 하기 때문에 가상 머신을 설치 해야합니다. Trail 버젼을 사용해서 학습 하시고 정식 이용은 정식 버젼을 이용하세요. 서버는 총 2대를 설치할예정이며 해당 서버는 Dual Master 구성을 위한 서버 구성입니.. 2023. 7. 23.
반응형