Thoughts, stories and ideas.

MySQL

Configuration

사용자 조회

use mysql;
select user, host from user;

계정생성

CREATE USER 'name'@'ip' IDENTIFIED BY 'password';
name : 사용자 계정
ip : 출발지 IP ( Any : % , 특정 대역 : xxx.xxx.%)
password : 비밀번호

계정에 권한 부여

GRANT ALL PRIVILEGES ON *.* TO 'name'@'ip' WITH GRANT OPTION;
FLUSH PRIVILEGES;
grant {권한} privileges on {스키마}.{테이블} to {username}@{ip};

외부접속 가능하게 설정하기

  1. my.cnf 수정하기 sudo vi /etc/mysql/my.cnf
  2. bind-address 주석처리 #bind-address = 127.0.0.1
  3. Mysql 재시작 sudo /etc/init.d/mysql restart

사용자 원격접속 허용하기

test 데이타베이스에 user123 계정이 111.222.333.444 IP 에서 접속 가능하게 설정
GRANT all privileges on test.* to 'user123'@'111.222.333.444' identified by '비번' ; (모든 IP에서 접속 가능하게 하려면 IP 부분을 %로 변경)


Database - Examples

mysql -u root -p  //로그인

show DATABASES;
create database testDB;  //데이터베이스 생성
drop database testDB;  //데이터베이스 삭제
use testDB;  //데이터베이스 선택

Table - Examples

create table testTable(
    id INT(11) not null auto_increment,
    name varchar(20),
    profile text,
    date datetime,
    constraint testTable_pk primary key(id)
);

create table person(
idx int unsigned auto_increment,
name varchar(30),
age int,
gender char(3),
grade int,
primary key(idx) //고유값 설정 및 자동증가
)Engine='InnoDB' default charset='utf8';

desc testTable;
alter table testTable add 유형;  // ADD
alter table testTable drop (column) 유형;  // Drop column
alter table [테이블명] change column [기존 컬럼명] [변경할 컬럼명] [변경할 컬럼 타입] // 컬럼이름 변경하기
alter table [테이블명] modify column [변경할 컬럼명] [변경할 컬럼 타입]  // 컬럼타입 변경
alter table testTable add constraint 제약조건명 제약조건 (칼럼명);  // 제약조건 추가





CREATE
    TABLE
        MySQL_Table(
            DateInserted DATETIME
        )
;

CREATE
    TRIGGER MySQL_Table_OnInsert BEFORE INSERT
            ON MySQL_Table FOR EACH ROW
    SET
        NEW.dateInserted = NOW()
;


Ref.

https://linuxism.tistory.com/33

시간대 변경하기
https://ingeni.tistory.com/entry/mysql-시간대timezone-변경하는-방법

  1. cd /usr/share/zoneinfo 를 쳐서 바꾸고 싶은 시간대가 있는지 확인합니다.

  2. 한국 시간대(Seoul)로 변경해 보겠습니다.
    cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime

  3. 콘솔에서 date 명령어를 수행하면 시간대(TimeZone)이 KST로 변경된 것을 확인할 수 있습니다.

  4. mysql을 다시 실행 시키기 위해서 sudo su 슈퍼유저로 접속 한 후
    그 다음 콘솔에 service mysql restart 해줘서 mysql을 다시 실행시킵니다.