잡다한 내 인생의 기록

Linux Database 환경 세팅 본문

프로그램/코딩/Database

Linux Database 환경 세팅

알 수 없는 사용자 2014. 5. 7. 14:13
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

yum 을 사용한 최초 설치


* list 확인(바로 설치해도 무방)

# yum list | grep mysql


* mysql 설치

# yum -y install mysql                                mysql을 설치하면 mysql-libs는 자동으로 업데이트되어 설치됩니다.

# yum -y install mysql-server

# yum -y install mysql-connector-odbc        이미 설치되어있다고 뜨네요... 서버세팅때 되어있었나...?


* mysql 서비스 실행

# service mysqld start


* 최초 비밀번호가 없으므로 설치 후 root 로그인하여 비밀번호를 세팅하거나, /usr/bin/mysqladmin 을 사용하여 변경 가능합니다.

# mysql -u root

mysql> use mysql;

mysql> update user set password=password('비밀번호') where user='root';

mysql> flush privileges;                    (플러시를 수행해야 적용됩니다.)


* 기본적인 mysql 언어 등을 세팅

필자는 UTF-8을 사용하기 때문에 아래와 같이 수정했습니다.

# vi /etc/my.cnf

(my.cnf 파일 수정 / 다른 방법을 이용할 수도 있습니다. 하지만 환경설정파일을 수정하여 영구적으로 사용하는 것이 편합니다.)

[client]

default-character-set=utf8


[mysqld]

datadir=/data/mysql

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

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

init_connect = SET collation_connection = utf8_general_ci

init_connect = SET NAMES utf8

default-character-set = utf8

character-set-server = utf8

collation-server = utf8_general_ci


lower_case_table_names=1


[mysqldump]

default-character-set=utf8


[mysql]

default-character-set=utf8


[mysqld_safe]

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

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

* my.cnf 파일은 https://dev.mysql.com/doc/refman/5.1/en/option-files.html 의 레퍼런스 가이드 문서를 참고하여 입맛대로 수정하시길 바랍니다.

my.cnf 파일 변경 후 서비스를 내렸다 올립니다.

# service mysqld restart


이제 루트를 통해서 실제 서버상에서는 접속이 가능한 상태입니다. database를 생성하고 작업을 하시면 됩니다.


+++ 추가

mysql은 root 계정의 경우에는 실제 서버에서만 사용하시는 것을 권장합니다.

따라서 서브 유저를 생성하셔야 합니다.

서브유저는 localhost, 127.0.0.1, % 모두를 만들어두시어 원격으로도 데이터베이스에 접근하시도록 설정하는 것이 좋죠.


만들어보도록 하겠습니다. 지금은 root 계정에 비밀번호가 있으므로 아래와 같이 접속합니다.(모르시는분은 없으실 것이라 생각됩니다만)

# mysql -u root -p

Enter password: ******


Database가 먼저 생성되어 있어야 해당 데이터베이스에 새로 생성할 유저에게 권한을 줄 수 있습니다.

mysql> create database 데이터베이스명 default character set utf8 collate utf8_general_ci;


mysql> grant all privileges on 데이터베이스명.* to 유저명@'%' identified by '비밀번호' with grant option;                          (외부)

mysql> grant all privileges on 데이터베이스명.* to 유저명@'localhost' identified by '비밀번호' with grant option;               (내부)

* 위의 예제는 select, insert, update, delete 모든 권한을 주는 예제입니다. 특정 권한을 주시거나, 특정 칼럼에만 권한을 주시려 한다면 다른 예제를 참고하시기 바랍니다.

유저를 생성했으니 또 플러시를 해야 적용됩니다.

mysql> flush privileges;

필자는 프로시져도 사용해야하기 때문에 프로시져 권한도 주겠습니다.

mysql> grant select, delete, update, insert to mysql.proc to 유저명@%;                (외부)

mysql> grant select, delete, update, insert to mysql.proc to 유저명@localhost;     (내부)

이제 외부(예를들어 mysql 명령을 실행할 수 있는, mysql이 설치된 어딘가 - 윈도우가 될 수도 있고 리눅스가 될 수도 있고,,, 어디든)에서도 해당 유저로 접속이 가능하게 되었습니다.

마지막으로 해당 유저로 접속 테스트를 해 봅니다.

C:\> mysql -h 아이피 -u 유저명 -p

Enter password: ***********

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 8

Server version: 5.1.73 Source distribution


Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> 

접속이 완료되었습니다. 이제 mysql을 즐기도록 해보죠!


덧. 제 환경 기준으로 세팅을 하는 것이며, 세팅 이후 수정에 대한 부분은 누락되어 있으므로 다른 레퍼런스 문서나 글들을 참고하시면 될 것 같습니다. 태클환영!!!