MySQL - SPARCS - SPARCS에 오신 것을 환영합니다!

Download Report

Transcript MySQL - SPARCS - SPARCS에 오신 것을 환영합니다!

MySQL
RENO
목차
03-05
06-42
43
44-46
47-48
49-50
51-52
53-56
57-61
62-64
65-68
준비
설치
데몬의 실행과 종료
사용자 계정 추가
사용자 계정 삭제
사용자 계정 비밀번호 변경
root 계정 비밀번호 변경
원격서버의 MySQL접속
Shell에서 SQL문 실행 (DB, Table 생성)
root password 복구방법
사용자 권한설정
MySQL에 앞서..
• SQL(Structured Query Language)
– 데이터베이스를 조작하기 위한 언어
• 데이터베이스
– 어떤 규칙이나 목적을 기초로 하여 관리되는
데이터의 모음
• DBMS(DataBase Management System)
– 여러 데이터베이스를 통합적으로 관리하는 시
스템
MySQL
• RDBMS
– Relational DataBase Management System
• 600만의 사용자
• C/C++/C# Java Python php등 언어 지원
• LAMP 플렛폼의 데이터베이스 구성체로 작동
• http://www.mysql.com/
MySQL의 특성
•
•
•
•
•
•
•
빠르다
튼튼하고 안정적이다
쉽고 빨리 배울 수 있다
무료다
아무리 큰 데이터도 처리가능하다
고사양을 요구하지 않는다
보안이 뛰어나다
MySQL 설치에 앞서…
• APM(APACHE + PHP + MySQL)
• 설치순서
– MySQL -> APACHE -> PHP
• wget gcc libncurses5-dev diff g++등이
필요하므로
$apt-get install 대상
MySQL 설치 – by source
• 새로 설치한 pure linux 서버
MySQL 설치
• wget ftp://ftp.linux.co.kr/mysql/mysql-5.1.32.tar.gz
MySQL 설치
• tar xvfz mysql-5.1.32.tar.gz
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
•
•
•
•
•
•
•
•
•
•
•
•
•
•
./configure
--prefix=/usr/local/mysql
--localstatedir=/usr/local/mysql/data
--enable-shared
--enable-assembler
--with-thread-safe-client
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
--with-mysqld-user="mysql"
--with-readline
--without-debug
--without-docs
--without-bench
--with-charset=euckr
•
configure: error: No curses/termcap library found
“reno”라는 DB의 Data
↓
/usr/local/mysql/data/reno
euc_kr → euckr; since v4.1.X
MySQL 설치
•
•
•
•
•
•
•
•
•
•
•
•
•
•
./configure
--prefix=/usr/local/mysql
--localstatedir=/usr/local/mysql/data
--enable-shared
--enable-assembler
--with-thread-safe-client
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
--with-mysqld-user="mysql"
--with-readline
--without-debug
--without-docs
--without-bench
--with-charset=euckr
•
→ apt-get install libncurses5-dev
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
• /usr/local/mysql/libexec/mysqld: Can't
read dir of '/etc/mysql/conf.d/'
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치 by apt-get
• apt-get으로 설치 (for ubuntu)
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 설치
MySQL 데몬의 실행과 종료
• 소스파일로 설치한 경우
– 실행: /usr/local/mysql/bin/mysqld_safe &
– 종료: /usr/local/mysql/bin/mysqladmin -u
root -p shutdown
• apt-get으로 설치한 경우
– 실행: /etc/init.d/mysql start
– 종료: /etc/init.d/mysql stop
MySQL 사용자 계정 추가
• mysql> Use mysql
• mysql> GRANT ALL PRIVILEGES ON *.*
TO 'id'@'host' IDENTIFIED BY
'password' WITH GRANT OPTION;
• mysql> flush privileges;
MySQL 사용자 계정 추가
MySQL 사용자 계정 추가
MySQL 사용자 계정 삭제
• mysql> Use mysql
• mysql> delete from user where user =
'id' and host = 'host';
• mysql> flush privileges;
MySQL 사용자 계정 삭제
MySQL 계정 비밀번호 변경
• mysql> Use mysql
• mysql> UPDATE user SET password =
password('password') WHERE user =
'id';
• mysql> flush privileges;
MySQL 계정 비밀번호 변경
root 계정 비밀번호 변경
• 소스, apt-get 모두 처음에 다음과 같이
root의 비밀번호를 설정 (설치부분)
소스
apt-get
root 계정 비밀번호 변경
원격서버의 MySQL 접속
• 원격 서버 접속을 위해 필요한 2가지
• 1) my.cnf에서 bind-address를 주석처리
• 2) db, user 테이블의 host 필드 값을 % 또
는 허용할 IP 주소 설정
원격서버의 MySQL 접속
• my.cnf
• bind-address를 주석처리
• 다음은 적절한 계정 생성
원격서버의 MySQL 접속
• host=xxx.xxx.xxx.xxx
– xxx.xxx.xxx.xxx서버에서 접속 가능
• host=%
– 모든 서버에서 접속가능
원격서버의 MySQL 접속
• $ mysql -u reno -p mysql -h
143.248.234.120 -P 3306
Shell에서 SQL문 실행하기
• 미리 생성된 X.sql
• # mysql -u root -p DBname < ./X.sql
• Shell에서 SQL문을 실행하여 DB와 Table
을 생성해보자
– DB생성시 DBname=mysql
– Table생성시 DBname=해당DB
SQL문으로 DB 생성
• 다음 내용의 temp.sql을 미리 생성
– create database temp_db;
• # mysql -u root -p mysql < ./temp.sql
SQL문으로 Table 생성
• 다음 내용의 temp2.sql을 미리 생성
• create table temptable (
uid mediumint(3) NOT NULL,
name varchar(12) NOT NULL,
PRIMARY KEY(uid)
);
• # mysql -u root -p temp_db
< ./temp2.sql
root password 복구방법
• 다음 과정을 따른다.
– 실행중인 MySQL 종료
– MySQL실행; mysqld_safe –skip-grant-table &
– password없이 root 계정으로 MySQL 접속
– update문으로 password 변경
– 권한설정 적용; flush privileges;
– MySQL 종료 후 정상적으로 실행
– 새로운 password로 접속
root password 복구방법
• 다음 과정을 따른다.
– 실행중인 MySQL 종료
– MySQL실행; mysqld_safe –skip-grant-table &
– password없이 root 계정으로 MySQL 접속
– update문으로 password 변경
– 권한설정 적용; flush privileges;
– MySQL 종료 후 정상적으로 실행
– 새로운 password로 접속
root password 복구방법
• 다음 과정을 따른다.
– 실행중인 MySQL 종료
– MySQL실행; mysqld_safe –skip-grant-table &
– password없이 root 계정으로 MySQL 접속
– update문으로 password 변경
– 권한설정 적용; flush privileges;
– MySQL 종료 후 정상적으로 실행
– 새로운 password로 접속
권한설정
• 사용자 권한 설정하여 추가하기
– mysql> INSERT INTO user VALUES('host', 'id',
PASSWORD('password'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
권한설정
• 'GRANT' 명령을 이용하여 쉽게 사용자 추
가 및 권한 설정하기
– mysql> grant all privileges on id.* to
id@host identified by 'password' with grant
option;
– mysql> grant all privileges on 'id_% '.* to
id@host identified by 'password' with grant
option;
권한설정
• 사용자에게 DB 권한주기
– mysql> INSERT INTO db (Host, Db, User,
Select_priv, Insert_priv, Update_priv,
Delete_priv, Create_priv, Drop_priv)
VALUES('%', 'DBname', 'id', 'Y', 'Y', 'Y',
'Y','Y','Y');
– mysql> FLUSH PRIVILEGES;
권한설정
• 모든 권한을 다 준다면 이런 방법으로
– mysql> GRANT ALL on DB명.* TO
id@'localhost‘;
– mysql> GRANT ALL on DB명.* TO id;
– mysql> GRANT ALL on DB명.* TO
id@'xxx.xxx.xxx.%';
Question
THANK YOU