레이블이 mysql인 게시물을 표시합니다. 모든 게시물 표시
레이블이 mysql인 게시물을 표시합니다. 모든 게시물 표시

2016년 5월 23일 월요일

mysql GRANT 명령어

mysql user, mysql GRANT 명령어, FLUSH PRIVILEGES

mysql 접속 권한을 주는 경우에 mysql DB/user 테이블에 가면 유저 정보들이 등록되어 있다.

접속 권한을 줄 대상을 추가하면 되는데.. 가능한 GRANT 명령어를 쓴다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
---------------------------------------------------------------------------------
# GRANT Syntax
---------------------------------------------------------------------------------
 
GRANT [주고 싶은 권한] on [권한 줄 DB].[권한 줄 테이블] to [권한 줄 대상 유저 ID]@[IP] identified by [유저 비밀번호];
 
 
 
---------------------------------------------------------------------------------
# 한 번에 전체 권한을 주고 싶을 때// '%' 는 IP를 넣거나, localhost를 넣거나 하면 된다.
---------------------------------------------------------------------------------
 
GRANT ALL PRIVILEGES ON *.*TO 'ID'@'%' IDENTIFIED BY 'password' with GRANT OPTION;
 
 
 
---------------------------------------------------------------------------------
# cutup 유저에게 linux라는 DB에 대해 selectinsert 권한을 주고 싶을 때
# cutup 유저의 IP는 111.111.111.111 / 비밀번호는 password111
---------------------------------------------------------------------------------
 
GRANT selectinsert on linux.* to cutup@111.111.111.111 identified by 'password111';
cs

그리고 접속 권한을 줄 대상을 추가한 후에는 아래 명령어를 실행해줘야 정상적으로 된다.
1
FLUSH PRIVILEGES;
cs

권한을 줄 때는 가능하면 GRANT 권한을 주지 말 것.패스워드 암호화는 mysql 버전에 따라 다른데..

3 버전 때에서는 아래와 같이 사용했다.SELECT password('암호 문자열');

2016년 4월 9일 토요일

MySQL Connector 사용시 에러

mysql connector, 일시적 연결해제 에러


C++ 에서 mysql connector 를 사용해 DB 접근하는 작업을 하는데,


사용하다보면가끔 연결이 해제되는 경우가 있다.


그런 경우 발생하는 에러 목록은 아래와 같다.


아래 에러는 mysql/include/errmsg.h 에 디파인 되어있다


.현재 사용하고 있는 버전은 [mysql-connector-c-6.1.6-winx64] 이다.

CR_SOCKET_CREATE_ERROR
CR_CONNECTION_ERROR
CR_CONN_HOST_ERROR
CR_SERVER_GONE_ERROR
CR_TCP_CONNECTION
CR_SERVER_HANDSHAKE_ERR
CR_SERVER_LOST
CR_INVALID_CONN_HANDLE


위 에러코드가 나온 경우에 접속이 성공할 때까지 재접속하도록 처리했다.다른 방식으로 해결이 가능하다면 추후 수정해야지.

2016년 1월 23일 토요일

MySQL::On Duplicate Key Update

MySQL, on duplicate key update, 중복키에 대해 데이터 업데이트 하기

On Duplicate Key Update 위 문법을 사용하려면 해당 테이블에 Primary Key 또는

Unique Key를 지정해야한다.

그래야 해당 키값에 대해 업데이트가 되기 때문에..

아니면 계속 중복되는 키값에 대해 데이터가 쌓이게 된다.


사용 예제
1
INSERT INTO table (a,b,c) VALUES (1,2,3ON DUPLICATE KEY UPDATE c=c+1
cs

table 컬럼 (a,b,c)에 (1,2,3)을 INSERT 시도하는데,

동일한 키값을 가진 데이터가 있으면, c만 c+1로 업데이트 한다.

2016년 1월 1일 금요일

MySql if


1
2
3
4
5
IF 문법
IF(조건, 조건이 True인 경우 반환할 값, 조건이 False인 경우 반환할 값)

# Example
INSERT INTO indiegame (`name``score`VALUES (‘cutup’, '5000’) on duplicate key update indiegame.score = IF(indiegame.score < 5000, 5000, indiegame.score); 
cs

indiegame.score가 5000보다 낮으면 5000을 indegame.score에 넣는다.

만약 5000보다 높으면 기존 스코어를 유지한다.

A*, JPS 길찾기 알고리즘 시뮬레이션 사이트

https://qiao.github.io/PathFinding.js/visual/ 길 찾기 알고리즘 시행 과정을 보여주는 사이트다. 링크 메모..