"Mysql"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
 
(사용자 2명의 중간 판 7개는 보이지 않습니다)
1번째 줄: 1번째 줄:
  
 
==개요==
 
==개요==
데이터베이스 중 하나.  
+
파이썬으로 Mysql에 관한 조작을 하기 위한 지식을 담은 문서.
 
 
어째서인지 <code>CREATE UNIQUE INDEX IF NOT EXISTS time ON coin_{} (time)</code>과 같은 명령이 안먹는다. 정신건강을 위해 MariaDB를 쓰자. MariaDB를 쓸 때 HeidiSQL 같은 편의기능도 함께 설치되어 편하다.
 
==설치==
 
설치할 때 root의 비밀번호를 설정한다. 잊지 않게끔 잘 기억해두자.
 
===열기===
 
{| class="wikitable"
 
!운영체제
 
!설명
 
!방법
 
|-
 
|우분투
 
|루트권한으로 접근해야 사용할 수 있다.
 
sudo mysql 을 치면 MySQL모니터에 접근한다.
 
|
 
|-
 
|윈도우
 
|cmd로 설치파일이 있는 경로로 이동한 후 명령 실행.
 
|mysql.exe -u root -p
 
|}
 
===시스템 재부팅===
 
==기본명령==
 
MySQL 모니터 안에서 사용하는 명령이다.
 
 
 
명령의 마지막엔 ; 이 붙어야 함에 유의하자.
 
 
 
(대문자, 소문자 구분을 안하던데, 왜 대문자로 치는지 모르겠네;;)
 
{| class="wikitable"
 
|+
 
!의도
 
!설명
 
!방법
 
|-
 
|데이터베이스 보기
 
|모니터 안에서.
 
|show DATABASES;
 
|-
 
|DB생성
 
|
 
|CREATE DATABASE 데이터베이스이름;
 
|-
 
|DB삭제
 
|
 
|DROP DATABASE 데이터베이스명;
 
|-
 
|DB사용
 
|
 
|use 데이터베이스명;
 
|-
 
|테이블 보기
 
|
 
|SHOW TABLES;
 
|}
 
 
 
=== 테이블 만들기 ===
 
{| class="wikitable"
 
!의도
 
!설명
 
!방법
 
|-
 
|테이블 만들기
 
|IF NOT EXISTS 조건을 걸어 테이블의 종류를 최신화하는 것도 가능하다.
 
|CREATE TABLE IF NOT EXISTS 테이블명(변수 타입, 변수2 타입2 제한조건, ....)
 
|-
 
|테이블 이름 제한
 
|실수하기 쉬운 순서대로 나열해 보았다.
 
 
 
# 반드시 문자로 시작.(많은 사람들이 숫자로 시작하는 테이블을 만드는 실수를 한다.)
 
# 오라클에서 사용되는 예약어나 다른 객체명과 중복불가(TRUE 같은 것들은 사용 불가.)
 
# 1~30자 까지 가능함.
 
# A~Z까지의 대소문자와 0~9까지의 숫자, 특수기호는 (_, $, #)만 포함할 수 있음.
 
# 공백허용 안됨.
 
|
 
|}
 
 
 
=== 데이터 입력 ===
 
{| class="wikitable"
 
!의도
 
!설명
 
!방법
 
|-
 
|테이블 안에 데이터 입력
 
|해당값은 따옴표, 쌍따옴표로 둘러 기입해준다.
 
|insert into 테이블명 values('값', '값2', ...)
 
|}
 
=유저 관련=
 
{| class="wikitable"
 
!의도
 
!설명
 
!방법
 
|-
 
|유저생성
 
|localhost 대신 해당 ip에서만 접속할 수 있게끔 제한할 수 있다.
 
|CREATE USER '계정명'@'localhost' IDENTIFIED BY '비밀번호';
 
|-
 
|권한 주기
 
|ALL은 모든 권한을 주는 것.
 
|GRANT ALL ON DB이름.* TO '계정명'@'localhost';
 
|-
 
|유저 정보 보기
 
|유저의 호스트, 유저명, 인증방법을 볼 수 있다.
 
|select Host,User,plugin FROM mysql.user;
 
|}
 
==외부에서 접속(원격접속)==
 
기본적으로 접속은 localhost에서만 가능하다. 외부접속을 위해선 2가지 과정이 필요하다.
 
{| class="wikitable"
 
!과정
 
!설명
 
|-
 
|외부에서 접속 가능한 계정 만들기
 
|mysql -u root -p 로 mysql을 실행한 후 <code>SELECT User, Host, plugin FROM mysql.user;</code>를 쳐보면, Host가 localhost로 되어있을 것이다.
 
새로운 ip에 맞게 유저를 만들어주어야 한다.(같은 유저라도 호스트에 따라 다른 계정이 된다.)
 
{| class="wikitable"
 
!과정
 
!설명
 
!
 
|-
 
|계정 만들기
 
|CREATE USER '계정명'@'%' IDENTIFIED BY '비밀번호';
 
 
 
 
 
계정명 뒤의 옵션에 따라 허용해주는 ip가 달라진다.
 
{| class="wikitable"
 
!옵션
 
!설명
 
|-
 
|%
 
|모든 아이피 허용
 
|-
 
|111.222.%
 
|111.222로 시작하는 아이피 모두 허용
 
|-
 
|111.222.11.22
 
|111.222.11.22만 허용
 
|}
 
|
 
|-
 
|권한부여
 
|*.* 은 모든 DB의 모든 table을 의미한다.
 
|GRANT ALL PRIVILEGES ON *.* TO '계정'@'%';
 
|-
 
|인증비밀번호설정
 
|비밀번호까지 다시 설정해주어야 제대로 된다.
 
|alter user '계정'@'%' identified with mysql_native_password by '비밀번호';
 
|}
 
|-
 
|바인드주소 지우기
 
|cd /etc/mysql/mysql.conf.d 에서  mysqld.cnf 파일을 편집한다.(버전, 운영체제 버전에 따라 다를 수 있다.)
 
바인드 어드레스를 다음과 같이 주석처리한 후 저장. ''#bind-address            = 127.0.0.1''
 
 
 
이후 sudo service mysql restart
 
|}
 
 
 
=== mysql 포트 확인 ===
 
mysql에 접속한 후 <code>mysql> show global variables like 'port';</code> 명령어로 사용하고 있는 포트번호를 알 수 있다.(일반적으로 3306)
 
 
 
= 이외 팁 =
 
 
 
=== 자동실행 ===
 
보통 서버가 실행되면 자동 실행되지만, 그렇지 않은 경우 <code>sudo systemctl enable mysql</code>을 해보자.
 
 
 
=== sql 직관적으로 보기 ===
 
HeidiSQL 등의 프로그램을 사용하면 엑셀과 같은 화면으로도 볼 수 있다.
 
 
 
=== 엑셀로 sql 내용물 보기 ===
 

2022년 10월 21일 (금) 09:08 기준 최신판

개요[편집 | 원본 편집]

파이썬으로 Mysql에 관한 조작을 하기 위한 지식을 담은 문서.