잡다한 내 인생의 기록
Linux Database 환경 세팅 본문
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을 즐기도록 해보죠!
덧. 제 환경 기준으로 세팅을 하는 것이며, 세팅 이후 수정에 대한 부분은 누락되어 있으므로 다른 레퍼런스 문서나 글들을 참고하시면 될 것 같습니다. 태클환영!!!
'프로그램/코딩 > Database' 카테고리의 다른 글
[mysql] 테이블 필요정보 선택하여 파일로 뽑기 (0) | 2014.12.16 |
---|