사용자 도구

사이트 도구


wiki:database:mariadb

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
wiki:database:mariadb [2020/09/14 17:31]
hylee [등록된 DATA로 날짜 비교]
wiki:database:mariadb [2023/07/11 14:09] (현재)
r_kimmk
줄 1: 줄 1:
-====== MariaDB ======+====== Mysql / MariaDB ======
 <WRAP left notice 80%> <WRAP left notice 80%>
   * description : MariaDB, Mysql 관련 자료 정리   * description : MariaDB, Mysql 관련 자료 정리
줄 11: 줄 11:
   * 대소문자 주의하는 것에 대해 고민하자   * 대소문자 주의하는 것에 대해 고민하자
  
 +===== FAQ =====
 +  *  사용자 패스워드 변경하기
 +  * dbSpider 수집 데이터 한글이 깨질 때 characterEncoding=UTF-8 추가
 +<code bash>
 +jdbc:mysql://202.20.99.10:3306/wwwhome?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
 +</code>
 ===== 시작/종료 ===== ===== 시작/종료 =====
 CentOS7 CentOS7
줄 30: 줄 36:
 [[http://myblog.opendocs.co.kr/archives/1710|[Project :: Server] MariaDB 백업설정 및 데이터 이관]] \\ [[http://myblog.opendocs.co.kr/archives/1710|[Project :: Server] MariaDB 백업설정 및 데이터 이관]] \\
  
-===== mysql db =====+ 
 +===== 사용자 관리(생성, 조회, 수정, 삭제) ===== 
 + 
 +==== Mysql DB ====
 user table 사용자 추가 user table 사용자 추가
  
줄 54: 줄 63:
 </code> </code>
  
-===== 사용자 생성 =====+==== Maria DB ====
 사용자 생성 사용자 생성
 <code bash> <code bash>
줄 60: 줄 69:
 Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec)
 </code> </code>
 +EX : create user 홍길동@'127.0.0.1' identified by '홍길동12'; \\
 +Host : 허용 IP \\
 +Tip : 허용 IP는 보통 3가지를 등록한다. \\
 +  * 홍길동@'127.0.0.1'
 +  * 홍길동@'localhost'
 +  * 홍길동@'내 IP' | 외부로 나가는 회사 IP
  
-사용자 권한 변경(${DB }내 모든 테이블)+\\ 
 +==== 사용자 권한 변경(${DB }내 모든 테이블) ====
 <code bash> <code bash>
 MariaDB [(none)]> grant all privileges on ${DB }.* to '${User }'@'${Host }'; MariaDB [(none)]> grant all privileges on ${DB }.* to '${User }'@'${Host }';
 Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec)
- +</code> 
 +EX : grant all privileges on repia.* to '홍길동'@'localhost'; \\ 
 +Tip : grant all - 모든권한 \\ 
 +  * all 대신 select, update, create 등이 있다. 
 +\\ 
 + 
 +<code bash>
 MariaDB [(none)]> flush privileges; MariaDB [(none)]> flush privileges;
 Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec)
 </code> </code>
- +Tip : 권한 바꾸고 쿼리로 데이터를 수정하고 등록했던 모든 것을 메모리에 올리는 개념. 마지막에 꼭 해주는 것이 좋다. \\ 
-LOCK, UNLOCK+\\ 
 +링크 
 +  * [[https://jang2r.tistory.com/41|개발노트 :: MySQL 사용자 권한 확인 및 추가]] 
 +  * [[https://m.blog.naver.com/star_breeze/221692010850|MariaDB 10.4 부터 변경된 user 테이블]] 
 +\\ 
 +==== LOCK, UNLOCK ====
  
 <code bash> <code bash>
줄 80: 줄 107:
 [[https://yhmane.tistory.com/73|[mysql] mysql, mariaDB 계정 생성, 권한 추가]] \\ [[https://yhmane.tistory.com/73|[mysql] mysql, mariaDB 계정 생성, 권한 추가]] \\
 [[https://mariadb.com/kb/en/account-locking/|Account Locking]] \\ [[https://mariadb.com/kb/en/account-locking/|Account Locking]] \\
 +
 +==== 쿼리 대소문자 구분 😒====
 +Windows에서는 잘 되던 것이 리눅스 환경으로 배포하면 가끔 테이블을 못 찾는다는 에러가 뜬다. ''Table ${Table name} doesn't exist'' \\
 +그 이유는 \\
 +''''Windows에서는 디렉토리와 파일에 접근할 때, 대소문자를 구분하지 않지만 Linux계열은 구분한다.'''' \\
 +즉, Linux계열에서 쿼리는 대소문자를 정확히 해서 테이블명과 컬럼명을 찾아야한다. \\
 +
 +> 해결 방법
 +
 +  * mariadb를 기본 설치했다면 ''/etc/my.cnf'' 파일에 ''lower_case_table_names = 1''를 추가해야 된다. \\
 +
 +^  value  ^  meaing                                                                                                                                                                             ^
 +|  0      | CREATE TABLE 이나 CREATE DATABASE 실행시 디스크에 저장되는 테이블과 데이타베이스의 이름을 대소문자를 구분해서 생성한다.\\ SELECT 나 Insert 사용시에도 대소문자를 구분해서 사용해야 한다. 대소문자를 구별하는 OS 에서만 의미가 있고 Windows/Mac OS X 에 는 적용되지 않는다  |
 +|  1      | 테이블과 DB 이름을 소문자로 생성하며 참조시에는 소문자로 변경하여 처리한다. 기존에 대문자가 포함되어 생성한 테이블과 DB 는 문제가 될 수 있다.                                                                                                 |
 +|  2      | CREATE TABLE 이나 CREATE DATABASE 실행시 디스크에 저장되는 테이블과 데이타베이스의 이름을 대소문자를 구분해서 생성한다.\\ 참조시에는 소문자로 변경한다. 대소문자를 구분하지 않는 파일 시스템을 가진 OS(Mac OS X) 에서만 동작한다.                                  |
 +
 +\\
 +위 표를 보면 알듯이 설정을 한 후에 데이터가 생성되어야 하기 때문에\\
 +다시 DATABASE를 지우고 새로 생성해야 한다. \\
 +생성한 다음 dump 파일을 넣어 주면 된다.
 +
 +===== 인덱스 관리 (생성, 조회, 삭제) =====
 +<code sql>
 +// 조회 (SHOW INDEX FROM 테이블명)
 +$> SHOW INDEX FROM HEQMS.TB_HFDMS2_STD_CMPTN_SD;
 +// 삭제 (ALTER TABLE 테이블명 DROP INDEX 인덱스명)
 +$> ALTER TABLE HEQMS.TB_HFDMS2_STD_CMPTN_SD DROP INDEX IX_TB_HEQMS2_STD_JOB_CMPTN_SD_01;
 +// 생성 (CREATE INDEX 인덱스명 ON 테이블명 (필드명 리스트))
 +$> CREATE INDEX IX_TB_HFDMS2_STD_CMPTN_SD_01 using BTREE ON TB_HFDMS2_STD_CMPTN_SD (STD_NO);
 +$> CREATE INDEX IX_TB_HFDMS2_STD_CMPTN_SD_02 using BTREE ON TB_HFDMS2_STD_CMPTN_SD (STD_NO, DGNSS_ROUND);
 +// 삭제 & 추가
 +$> ALTER TABLE RSA.SIMS_MONITORING DROP INDEX IX_SIMS_MONITORING_01;
 +$> CREATE UNIQUE INDEX IX_SIMS_MONITORING_01 USING BTREE ON RSA.SIMS_MONITORING (MONIT_ID);
 +// 삭제
 +$> ALTER TABLE RSA.SIMS_MONITORING DROP INDEX `PRIMARY`;
 +</code>
 +> 인덱스 이름 변경은 잘 안됨
  
 ===== 함수(function) 생성 ===== ===== 함수(function) 생성 =====
줄 182: 줄 246:
   INSERT INTO ${DEST_TABLE} ( SELECT * FROM ${SOURCE_TABLE} )   INSERT INTO ${DEST_TABLE} ( SELECT * FROM ${SOURCE_TABLE} )
  
 +===== Function & Procedures =====
 +  * [[wiki:mariadb:유용한 사용자 정의 함수|유용한 사용자 정의 함수들]]
  
 ===== Encoding ===== ===== Encoding =====
- 
   * [[wiki:mariadb:latin1에서 utf8mb4로 변환하기]]   * [[wiki:mariadb:latin1에서 utf8mb4로 변환하기]]
- 
  
 ===== Logging ===== ===== Logging =====
줄 198: 줄 262:
 ===== Trouble Shooting ===== ===== Trouble Shooting =====
   * [[wiki:database:mariadb:troubleshooting|TIMEZONE error]]   * [[wiki:database:mariadb:troubleshooting|TIMEZONE error]]
 +  * [[https://developer-joe.tistory.com/178|원격 IP로 MySQL(MariaDB)에 접속이 되지 않을 때의 해법]]
 +  * [[https://blog.dalso.org/it/4260||MYSQL(MariaDB)에서 외부접근이 되지않을때.(Feat. Can’t Connect To MySQL Server On ‘192.168.X.X'(10061)]]
  
 +\\
 ===== Ref ===== ===== Ref =====
   * [[https://m.blog.naver.com/kilsu1024/110162891049|MySQL 테이블 구조 복사 및 데이터 복사 ( Table Copy )]]   * [[https://m.blog.naver.com/kilsu1024/110162891049|MySQL 테이블 구조 복사 및 데이터 복사 ( Table Copy )]]
줄 210: 줄 276:
   * [[https://reference-m1.tistory.com/122|SQL Developer에서 MySQL 연결하기]]   * [[https://reference-m1.tistory.com/122|SQL Developer에서 MySQL 연결하기]]
   * [[https://extbrain.tistory.com/78|[MySQL] 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수)]]   * [[https://extbrain.tistory.com/78|[MySQL] 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수)]]
 +  * [[https://kimcblog.com/2018/07/14/mysql-mariadb-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%98%90%EB%8A%94-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%98-%EB%8C%80%EC%86%8C%EB%AC%B8%EC%9E%90-%EA%B5%AC%EB%B6%84/|MySQL ( MariaDB ) 데이터베이스 또는 테이블의 대소문자 구분]]
  
- +===== MySQL Note ===== 
- +  *[[wiki:database:mariadb:MySQL note]]
  
 {{tag>주레피 도봉산핵주먹 천호동밤안개 eleven mariadb mysql}} {{tag>주레피 도봉산핵주먹 천호동밤안개 eleven mariadb mysql}}
/volume1/web/dokuwiki/data/attic/wiki/database/mariadb.1600072299.txt.gz · 마지막으로 수정됨: 2022/03/10 19:52 (바깥 편집)