본문 바로가기
my_lesson/_Linux

Linux - ubuntu mysql 설치 및 설정하기.

by boolean 2016. 2. 25.
728x90

Linux - ubuntu mysql 설치 및 설정하기

1). mysql 검색

sudo apt-cache search mysql-server


2). mysql 설치

sudo apt-get install mysql-server-5.6



3). 외부에서 접속할 수 있도록 권한부여.


(1) mysql database에 로그인.

mysql -u root -p


mysql -h 192.168.115.207 -P 3306 -u root -p


(2) default db 변경

 use mysql;



(3) 권한부여 : 모든 데이터배이스에 대하여 루트계정이 모든 권한을 갖는다

GRANT ALL PRIVILEGES ON *.* to 'root'@'%' IDENTIFIED BY 'admin_password';


password => 어드민 패스워드 입력


(4) 즉시반영

flush privileges;



4).my.cnf 설정화일 변경

sudo vi /etc/mysql/my.cnf


bind-address = 127.0.0.1 이부분을 주석처리 


5). mysql Server 재시작

sudo /etc/init.d/service mysql restart



6). mysql - 한글 설정

sudo vi /etc/mysql/my.cnf 열어 


[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

character-set-server=utf8

collation-server=utf8_general_ci

init_connect = set collation_connection = utf8_general_ci

init_connect = set names utf8

 

[mysql]

default-character-set=utf8

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

default-character-set=utf8

 

[client]

default-character-set=utf8

 

[mysqldump]

default-character-set=utf8


내용을 추가


설정내용확인

mysql -h 192.168.115.207 -P 3306 -u root -p



7) innodb 설정

sudo vi /etc/mysql/my.cnf에 추가


innodb_data_home_dir = /var/lib/mysql

innodb_data_file_path = ibdata1:10M:autoextend

innodb_log_group_home_dir = /var/lib/mysql

innodb_buffer_pool_size = 256M

innodb_additional_mem_pool_size = 20M

innodb_log_file_size = 64M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50


User database 생성

  • CREATE DATABASE dbjoon CHARACTER SET utf8 COLLATE utf8_general_ci;

생성확인

  • show databases;

User 계정 생성

  • show databases;
  • use mysql;
  • show tables;
  • SELECT Host, User, Password FROM user;

  • 일반 사용자 추가
  • CREATE USER 'user_name'@'localhost' identified by 'user_password';
  • GRANT ALL ON user_DB_name TO 'user_name'@'localhost' WITH GRANT OPTION;
  • Operation CREATE USER faild for 'usr_name'@'localhost'  ===>>
  • 사용자 삭제 - DROP USER 'user_name'@'localhost'; 
  •  or
  • GRANT ALL ON user_DB_name.* TO 'user_name'@'localhost' IDENTIFIED BY 'user_password' 
  • WITH GRANT OPTION;
  •   //서버에서 접속 허용

  • CREATE USER 'user_name'@'%' identified by 'user_password';
  • GRANT ALL ON user_DB_name TO 'user_name'@'%' WITH GRANT OPTION;       
  • Operation CREATE USER faild for 'usr_name'@'%'  ===>>
  • 사용자 삭제 - DROP USER 'user_name'@'%'; 
  •  or
  • GRANT ALL ON user_DB_name.* TO 'user_name'@'%' IDENTIFIED BY 'user_password' 
  • WITH GRANT OPTION;     
  •   //외부 ip에서 접속 허용
  •     특정 이름의 데이터베이스에 대한 모든 권한을 가지는 사용자 추가
  • GRANT ALL ON `user_DB_name`.* TO 'user_name'@'%' IDENTIFIED BY 'user_password'
  • ` `  '' 차이점 주의
  • SHOW GRANTS FOR 'user_name'@'localhost';  mysql grants 확인
  • SHOW GRANTS FOR 'user_name'@'%';
  • flush privileges;
  • SELECT Host, User, Password FROM user;


나갔다가 다시 진입 확인하기

  • exit

데이터배이스 사용하기

  • use dbjoon

User 의 테이블 생성하기

CREATE TABLE topic(my_t 라는 테이블 생성 하는데
> id int(11) NOT NULL AUTO_INCREMENT,아이디는 int자료형인데 11자리까지이며 반드시 입력해야하며 자동증가방식이다
> title varchar(255) NOT NULL,타이틀은 varchar인데 255자리까지이며 반드시 입력해야 한다
> description text NULL,설명은 text 자료형인데 입력 안해도 된다.
> created datetime NOT NULL,문서 작성시간은 datetime자료형이며 반드시 입력해야 한다.
> PRIMARY KEY (id)대표키는 id로 한다.
> );

CREATE TABLE topic( id int(11) NOT NULL AUTO_INCREMENT, 

 title varchar(255) NOT NULL, description text NULL, 
 created datetime NOT NULL, 
 PRIMARY KEY (id) ); 

CREATE TABLE memo( id int(11) NOT NULL AUTO_INCREMENT, 
 name varchar(20) NOT NULL, 
 email varchar(50) NOT NULL, 
 memo varchar(255) NOT NULL, 
 created datetime NOT NULL, 
 ip varchar(15) NOT NULL, 
 PRIMARY KEY (id) );

빈 테이블 조회하기

  • SELECT * FROM topic;

선별 조회하기

  • SELECT id, title, created FROM topic;

테이블 구조 보기

DESC 테이블명
DESCRIBE 테이블명
EXPLAIN 테이블명

데이터 추가하기.

  • INSERT INTO `topic` (title,description,created) VALUES ('JavaScript','JavaScript ...',now());
  • INSERT INTO `topic` (title,description,created) VALUES ('변수와 상수','변수와 상수 ...',now());
  • INSERT INTO `topic` (title,description,created) VALUES ('연산자','연산자 ...',now());
  • INSERT INTO `topic` (title,description,created) VALUES ('JSON','JSON ...',now());
'' `` 차이점 주의!!

정렬

  • SELECT id, title, created FROM topic ORDER BY title DESC;

검색

  • SELECT id, title, created FROM topic WHERE id = 2;
  • SELECT id, title, created FROM topic WHERE id = 2 OR id = 1;

출력 튜플 제한

  • SELECT id, title, created FROM topic LIMIT 2;
  • SELECT id, title, created FROM topic LINIT 1,2; //배열[1]에 해당하는 튜플부터 2칸 출력하라!
incompatible debugger version the remote debugger version might not match the expacted protocol version (20060400705) ec2-54-64-231-37.ap-northeast-1.compute.amazonaws.com


댓글