MySQL Grant 권한 옵션 설명

Database
MySQL User 추가를 할 경우 보통 Grant 옵션을 주지 않는데, 개발서버에서 필요한 경우가 있어서 간단히 한번 정리를 한것입니다. CREATEdatabases,tables, indexs데이터베이스, 테이블 생성DROPdatabases,tables,views데이터베이스, 테이블 삭제GRANT OPTIONdatabases,tables,stored routines사용자들의 권한을 부여하거나 제거LOCK TABLESdatabases테이블 잠그기ALTERtables테이블의 구조를 변경DELETEtables테이블의 행을 삭제INDEXtables인덱스를 생성하거나 삭제INSERTtables,columns행추가SELECTtables,columns행조회UPDATEtables,columns행변경CREATE TEMPORART TABLEStables임시테이블생성CREATE VIEWviews뷰의 생성SHOW VIEWviewsSHOW CREATE VIEWALTER ROUTINEstored routines프로시저 함수의 변경 삭제CREATE ROUTINEstored routines프로시저 함수의 생성 그다지 잘 주지 않는 옵션인데 Root 권한을 주기에는 뭔가 애매모호해서 필요한 부분만 허용을 하고 나머지는 주지 않을 생각이라서 현재 몇가기중 View 관련만 허용을 해주고 하지 않은 상태입니다.
Read More

C# SQLite 설치해서 사용하기

Database
메뉴 -> 도구 -> Nuget패키지 관리자 > 패키지 관리자 콘솔 "install -Package System.Data.SQLite SQLite 기능을 쓰기 위해서 추가적으로 설치해야 되는 사항입니다. 해당 사항을 설치하고 나면서 빌드할 경우에 x86, x64 폴더가 포함되며, 해당 기능도 같이 있어 다른 컴퓨터에서 사용할 수 있을 것이라고 사료 됩니다.
Read More

[MySQL] 패스워드 정책 변경

Database
unix_socket 방식을 mysql_native_password 으로 변경하는 방법입니다 SHOW VARIABLES LIKE 'validate_password%'; << 패스워드 정책 SET GLOBAL validate_password_policy=LOW; <- MEDIUM으로 변경도 가능 SELECT password('변경할PASSWORD'); UPDATE user SET plugin='mysql_native_password' WHERE user='root'; ALTER USER 'root'@'localhost' identified with mysql_native_password by '변경할PASSWORD'; ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password USING PASSWORD("변경할PASSWORD"); show grants for 'root'@'localhost'; flush privileges; 이렇게 하여도 적용이 안될때가 가끔있는데 서버 재시작을 해주시기 바랍니다. 대부분 변경이 가능하리라 봅니다.
Read More

MySQL, PostgreSQL, SQLite 각 컬럼의 Type차이 기록

Database
인터넷 검색을 통해서 제가 습득한 지식 기반이여서 정확하지 않음을 미리 알려드립니다. MySQL PostgreSQL SQLite TINYINT SMALLINT INTEGER SMALLINT SMALLINT MEDIUMINT INTEGER BIGINT BIGINT BIT BIT INTEGER _______________________________________________________ TINYINT UNSIGNED SMALLINT INTEGER SMALLINT UNSIGNED INTEGER MEDIUMINT UNSIGNED INTEGER INT UNSIGNED BIGINT BIGINT UNSIGNED NUMERIC(20) _______________________________________________________ DOUBLE DOUBLE PRECISION REAL FLOAT REAL REAL DECIMAL DECIMAL REAL NUMERIC NUMERIC REAL _______________________________________________________ BOOLEAN BOOLEAN INTEGER _______________________________________________________ DATE DATE TEXT TIME TIME DATETIME TIMESTAMP _______________________________________________________ TIMESTAMP DEFAULT TIMESTAMP DEFAULT TEXT NOW() NOW() _______________________________________________________ LONGTEXT TEXT TEXT MEDIUMTEXT TEXT TEXT BLOB BYTEA BLOB VARCHAR VARCHAR TEXT CHAR CHAR TEXT _______________________________________________________ columnname INT columnname SERIAL INTEGER PRIMARY AUTO_INCREMENT KEY AUTOINCREMENT
Read More

SQLite Table 비우기, 및 AutoIncrement 초기화

Database
SQLite는 가볍게 사용할 수 있지만 다른 DBMS에서 사용된느 Truncate 명령어가 없습니다. 그래서 모든 내용을 지우려면은 Delete로 지워야하기에 기록해 놓습니다. #SQLite TRUNCATE TABLE DELETE FROM TABLE_NAME; SQLite에서 AutoIncrement를 초기화가 되지 않습니다. 그래서 Delete후에 새롭게 값을 초기화해서 보기 좋도록(?) 하기 위해서 작업을 합니다. #SQLite Auto Increment Reset UPDATE SQLITE_SEQUENCE SET seq = 0 WHERE name = 'TABLE_NAME';
Read More

[MySQL] 상태가 sleep 인것 정리하기

Database
#!/bin/sh NOW=$(date +"%m-%d-%Y") FILE="/root/sleep_processes.$NOW.txt" /var/lib/mysql-5.1.40/bin/mysql -uroot --password='password' -e "select concat('KILL ',id,';') into outfile '/tmp/sleep_processes.txt' from information_schema.processlist where State = 'User sleep'" /var/lib/mysql-5.1.40/bin/mysql -uroot --password='password' -e "source /tmp/sleep_processes.txt;" if [ -s "/tmp/sleep_processes.txt" ]; then cp /tmp/sleep_processes.txt $FILE fi rm -f /tmp/sleep_processes.txt https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=81951&page=2
Read More

[MySQL] mysql error 1364 Field ‘name’ doesn’t have a default values

Database
MySQL 5.6 이전에는 필드 생성시 default 값을 따로 지정을 안 해도 insert 시에 '' 처럼 자동으로 디폴트 값이 반영이 되었습니다. 5.6 이후부터는 STRICT 모드라고 해서 테이블 생성시에 default 값을 지정하지 않을 경우 insert 시에 아래와 같이 에러가 발생합니다. 정확하게 필드마다 값을 지정해주는것도 좋지만 외부프로그램을 사용할때 특별히 지정 안해줘도 되는 부분에 '' 이걸 다 셋팅해주긴 귀찮은 편입니다. mysql.cnf 파일에서 "sql_mode"부분을 찾아서 다음 부분을 제외 하고 재시작을 해주시면 됩니다. #sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # 'STRICT_TRANS_TABLES' 항목을 제외하고 mysql 재시작 sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Read More

[MySQL] 특정 ID별 최신 시간 데이터 추출

Database
DB에 사용자 ID 별로 시간 단위로 기록을 하고 있습니다.해당 항목에 대해서 목록을 뽑을때 사용한 쿼리 입니다. SELECT * FROM ( SELECT uid, id, balance, datetime FROM table ORDER BY datetime DESC ) AS subQuery GROUP BY DATE_FORMAT(datetime,'%Y-%m-%d'), id ORDER BY id DESC, datetime DESC
Read More

[MySQL] limit , offset

Database
게시판을 만들거나 혹은 전체 목록에서 페이지를 나누다 보면은 항상 사용하게 되어 있습니다. 조금은 형태를 바꾼 방식이라고 보시면 됩니다. /* 1번 query */ SELECT * FROM Orders LIMIT 10 OFFSET 15 /* 2번 query */ SELECT * FROM Orders LIMIT 15, 10 위에 쿼리에 보이듯이 1번, 2번은 동일한 결과물이 나오도록 합니다.정확하게 설명은 못하겠지만은 쿼리의 성능을 올리기 위해라고 저는 이해 하고 있습니다. 좀 더 설명을 잘하지 못해서 제가 검색한 사이트인 "http://crystalcube.co.kr/163" 의 링크를 걸어 놓겠습니다. 참조 http://www.w3schools.com/php/php_mysql_select_limit.asphttp://ralf79.tistory.com/722
Read More

[MySQL] 다수의 필드에 카운터 구하기

Database
정말 가끔 사용을 하다 보니깐 계속 까먹게 되어서 기록을 남기게 됩니다.동일 필드지만은 구분이 달라서 개별로 카운터를 구해야 하는 경우가 있어서 사용하는데, 정말 아주 가끔 사용을 합니다. SELECT COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT(필드명) as 결과시보여질필드명 FROM 테이블명
Read More
[MySQL] 자료형의 종류

[MySQL] 자료형의 종류

Database
[MySQL] 자료형의 종류 자료형은 크게 숫자형, 문자형, 날짜형 세가지로 나뉠 수 있다. 각 종류에 따른 타입의 이름과 쓰임새에 대하여 알아보겠다. 1. 숫자형 2. 문자형 3. 날짜형
Read More