본문 바로가기

MySQL

Mariadb(mysql) 사용자 추가(유저 계정 생성)하기 1. 유저 계정 생성하기 - 유저 생성과 접속 범위, 패스워드 설정 CREATE USER '[id]'@'[ip]' IDENTIFIED BY '[passwd]'; # localhost에서만 접속하는 home 아이디를 패스워드를 1234로 설정함 CREATE USER 'home'@'localhost' IDENTIFIED BY '1234'; 2. 권한 부여하기 - 유저에게 사용권한으로 모든 권한 설정 GRANT ALL PRIVILEGES ON [Database].[Table] TO '[id]'@'[ip]'; # localhost에서 접속하는 home유저에게 home_db란 데이터베이스에 모든 테이블의 권한을 부여함. GRANT ALL PRIVILEGES ON home_db.* TO 'home'@'localho.. 더보기
mysql(mariadb) 데이터 이전시 function 생성 오류(This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled) This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled mysql 5.6 버전에서 8버전으로 마이그레이션 작업중 아래와 같이 오류를 표시하고 작업이 중단되었다. 해당오류는 함수(Function) 생성시 제약을 하는 옵션이 설정되어 있지 않아 함수를 생성하지 못한다는 내용이므로 서버내에서 해당 옵션을 설정하여 준다. 1. Mysql 옵션내에서 log_bin_trust_function_creators 옵션을 수정하여야 한다. - 현재 서버가 AWS내에 RDS 서버이므로 서버내 파라미터 그룹에서 위 옵션으로 검색하여 값을 변경한다. 값 : 0(유저가 직접 fu.. 더보기
[Mysql -> SQLITE 변환] SQLITE에서 concat(문자열 합치기) 처리 mysql을 SQLITE로 변환중 near "concat": syntax error 라고 concat문이 없다고 에러 발생 SQLITE에서 의 문자열 합치기는 '||'로 변환하여 사용한다. --Mysql SELECT CONCAT(p_name, p_detail1, p_detail2) AS p_content FROM Products --SQLITE SELECT p_name || p_detail1 || p_detail2 AS p_content FROM Products 더보기
[Mysql -> SQLITE 변환] SQLITE에서 IF문 처리 Mysql을 SQLITE로 변환중 IF문에서 "no such function: IF" 라고 IF문이 없다고 에러 발생 SQLITE에서 의 IF문은 CASE문으로 변환하여 사용한다. --Mysql IF(user_type='3',pay_amount,0) AS pay_amount_person --SQLITE CASE WHEN(user_type='3') THEN pay_amount ELSE 0 END AS pay_amount_person 더보기
'MySqlParameterCollection.Add(string, object)'은(는) 사용되지 않습니다. 경고 CS0618 'MySqlParameterCollection.Add(string, object)'은(는) 사용되지 않습니다. 'Add(String parameterName, Object value) has been deprecated. Use AddWithValue(String parameterName, Object value)' 기존 구형 mysqlconnector와 .net framework를 사용하던 소스를 최신버전으로 컨버팅 작업중 아래의 경고가 281개나 표시되었다. 뭐 소스 버전업중 너무나도(?) 자주 일어나는 일이므로 당황하지 않고 대체 메소드를 찾은뒤 "전체 바꾸기" 로 해당 경고를 처리한다. 경고라 나둬도 상관은 없지만 굳이 경고를 보고도 두는건 거슬리는 일이므로 ..... 기존코드 .. 더보기
Node.js Mysql 에서 DateTime 컬럼 형태 바꾸기 일반적으로 데이터베이스에서 DateTime 형인 컬럼의 데이터값을 가져오면 "2021-08-01 01:11:11" 의 형태로 가져와진다. 그런데 Node.js에 처음 Mysql을 연결하여 DateTime형 컬럼의 값을 가져오면 "2020-05-06T15:41:24.000Z" 이런 형태로 값을 가져와서 보여준다. 사용자에게 보여주기 위해 T, Z를 보여줄순 없기에 위의 형태로 가져오는 방법이다. 1. npm으로 mysql 설치 npm install -g mysql 2. mysql 모듈 가져와서 세팅시 dateStrings 설정 const mysql = require('mysql'); const connection = mysql.createConnection({ host : 'rds.***.***', use.. 더보기
Mysql 대량 INSERT의 속도 개선을 위한 다양한 방법 1. LOAD DATA - Bulk Insert방법중 최대 속도인 처리방법 - 데이터를 파일로 로드해서 insert 하는 방법 - my.cnf에서 local-infile=1 설정이 되어 있어야 사용가능 - 단 데이터 내용안에 특수문자가 누락되는 경우가 많아서 특문을 별도 처리해야 함 LOAD DATA LOCAL INFILE '/work/data.txt' INTO TABLE TEST (c1,c2,c3,c4); 2. MULTI-VALUE INSERTS - 쿼리문 하나에 n개의 데이터를 입력해야함 - 단 데이터 갯수가 너무 많아져서 쿼리길이기 길어지는 경우를 대비하여 max-allowed-packet 길이를 조절해야 함. INSERT INTO [Table Name] VALUES (1,...), (2,...),.. 더보기
Centos 7 에 MYSQL 설치하기(5.6 or 5.7) Centos 7에서 mysql서비스는 기본적으로 MariaDB를 사용하고 있다. 그러나 특정서비스에서 아직 Mysql 5.6을 쓰고 있어서 마이그레이션이 되지 않는 경우가 있어 Mysql Community 5.6버전을 설치하고자 한다. 1. 기존 MariaDB 관련 설치 패키지 확인 - yum list installed mariadb\* 2. 설치된 MariaDB 패키지 삭제 - yum remove -y MariaDB-client.x86_64 - yum remove -y MariaDB-common.x86_64 - MariaDB 관련 패키지가 모두 삭제되었음 3. 기존 MariaDB에서 사용된 파일 삭제 필요 - rm -f -r /var/lib/mysql 3. 새로 Mysql 설치 - MySql 5.6 버.. 더보기