■ SQL step 1
DQL (Data Query Language)
데이터 검색 명령어 
select
DML (Data Manipulation Language)
데이터 조작어 (데이터 변경)
Insert (데이터 입력)
update (데이터 수정)
delete (데이터 삭제)
DDL (Data definition Language)
데이터 정의어 (객체 생성 및 변경시)
create (데이터베이스 생성)
alter (데이터베이스 변경)
drop (데이터베이스 삭제)
rename (데이터베이스 객체 이름 변경)
truncate (데이터베이스 저장 공간 삭제)
TCL (Transaction Control Language)
트랜잭션 처리어
commit (트랜젝션 정상 처리)
rollback (트랜젝션 취소)
savepoint (트랜젝션 내 임시 저장점)
DCL (Data Control Language)
데이터 제어어 (사용자?)
grant (권한 부여)
remove (권한 취소)

 

 

저작자 표시 비영리 변경 금지
신고
Posted by 신머루군

######### mysql에 test이 접속할수 있는 ID를 만들어 준다 user 생성 ###############
INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv,
Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Create_user_priv) VALUES ('%', 'test', password('1234'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');

######### mysql에 test이 접속할수 있는 권한을를 만들어 준다 ###############
INSERT INTO db VALUES ('%', 'mysql', 'test', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');

######## mysql에서 test계정에 -p 옵션이 사용가능하도록 수정하는 sql ###############
delete from user where User='';
######### mysql db가 활성화 되어지도록 수정한다################
FLUSH PRIVILEGES;

이건 매번 넣을때마다 까먹어...-.ㅡ;;;

ps. 이상하게 flush 해도 안먹히는경우 mysql 한번 내렸다 올리시길...-.ㅡ;;;

저작자 표시 비영리 변경 금지
신고
Posted by 신머루군

흠...일단 oracle 조합만 쓰다보니 rpm으로 쉽게쉽게 설치를 하다가 이번에 mysql에서 사용할일이 있어서 설치를 해보았습니다.

각설하고 결론부터 말씀 드리자면..
mysql 자체가 컴파일이 이상하게 되었다거나, 정확한 옵션을 모를경우에는 아싸리 mysql을 재 설치하는게 좋습니다. (재설치가 정신건강에 이롭습니다)

========== 환경
CentOS 5.5 x64 + python 2.4.3  + Mysql 5.0.51 + MySQL-python-1.2.3

MySQL-python-1.2.3 컴파일 과정
1. 다운로드 받고 (http://sourceforge.net/projects/mysql-python/files/mysql-python/) 압축 푸는 과정은 생략

2. 최초 setuptools가 필요합니다.
   python ez_setup.py 를 통해서 간단하게 설치 되어집니다.

3. site.cfg 수정이 필요합니다.
   저는 여기서 삽질했습니다. mysql을 static하게 컴파일을 했었더니 라이브러를 못찾는 경우가 발생합니다. 원인을 찾아볼려고 했지만 LD_LIBRARY_PATH 혹은 /etc/ld.so.conf 를 수정해도 원인 불명이였습니다.
   mysql 재 컴파일하니 되네요...-_-

 [options]
# embedded: link against the embedded server library
# threadsafe: use the threadsafe client
# static: link against a static library (probably required for embedded)
embedded = False #이거 뭘까요? 서버 라이브러리 링크? 링크되어진경우인가?
threadsafe = True #mysql 컴파일시 --enable-thread-safe-client 포함되어져 있을경우 입니다.
static = False #동적 라이브러리로 컴파일할경우에는 False입니다

그리고 mysql_config를 수정합니다.
RPM으로 설치하신분이라면 수정할 필요가 없습니다.

아래 레지스트리키 어쩌구 하는데...이건 windows 사용자용

맞추시고...
export LD_LIBRARY_PATH=/data/mysql/lib/mysql #mysql 라이브러리 경로
해줍니다.

그 후
python setup.py build
python setup.py install 하면 되어집니다.

수행 후 결과
root@localhost MySQL-python-1.2.3]# python
Python 2.4.3 (#1, Sep  3 2009, 15:37:37)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
/usr/lib64/python2.4/site-packages/MySQL_python-1.2.3-py2.4-linux-x86_64.egg/_mysql.py:3: UserWarning:
 Module _mysql was already imported from /usr/lib64/python2.4/site-packages/MySQL_python-1.2.3-py2.4-l
inux-x86_64.egg/_mysql.pyc, but /root/c/MySQL-python-1.2.3 is being added to sys.path

정상적으로 import가 되어지는군요...근데 저 Warning 메세지는 무엇이란 말인가?

뭐 결론은 mysql에 있었던것 같습니다..ㅠㅠ;
저작자 표시 비영리 변경 금지
신고
Posted by 신머루군
백업과 복구 이어서...........................

1.기존 테이블을 삭제하고 백업데이터로 복구하는 방법 (add-drop-table)
이 방법은 백업을 하시는 시점~복구 시점간 중간단계에 db는 저장되어지지 않는다
mysqldump -u root -p --add-drop-table test > test.sql           // 백업방법
mysql -u root -p test < test             //복구방법

백업시 에러가 발생할경우 무시하고 계속 진행
mysqldump -u root -p -f databases_name > data.sql

원격지에서 백업하는 방법
mysqldump -u [USERID] -p -h test.com -P [port:무시가능] test > remobackup.sql
mysqldump -u root -p -h test.com -P 3306 test > remobackup.sql

데이터 백업시에 create문 생략하고 백업
--all-databases(혹은 --databases)와 같은경우 데이터베이스를 생성하는 create문이 들어가게 되는 해당 부분에 대해서 데이터베이스를 생성하지 않고 하는 방법입니다.
mysqldump -u [USERID] -p -n [option] databases > file  //-n == --no-create-db

데이터 백업시 create tables문을 빼고 백업
기본백업시에 데이터베이스의 스키마를 생성하는 create table문과 insert문이 들어가는데 이 create table을 제외하는 방법
mysqldump -u [USERID] -p -t databases > file.sql

데이터는 백업하지 않고 테이블 스키마만 백업
테이블구조까지는 만들지만, 안에 들어가는 데이터내용은 텅텅 빈 sql백업방법
mysqldump -u root -p -d databases > file.sql

특정 데이터베이스의 조건에 맞는 데이터만 백업하기
특정 데이터 베이스내에 실제 데이터들 가운데 특정 조건에 맞는 데이터만 백업한다
mysqldump -u root -p --where="일반적인 where의 조건문" databases_name table_name > file.sql
ex>
mysqldump -u root -p --where="uid='0'" database_name table > file.sql

응용은 블로거분들의 몫으로 남겨두겠습니다..
혹시나 유용한 응용방법이 있으시면 공유도 좀 해주세요..+_+;
신고
Posted by 신머루군
TAG MySQL

정말 쉬운 백업방법
1. 통체로 묶어서 백업한다.
2. mysqldump를 통해서 백업을 한다..

솔직히 1번과 같은경우가 정말 편하기 편합니다...
하지만~! 1번과 같은경우는 운이 나쁘면 dbtable이 깨져버리는 불상사가 ....OTL

mysqldump에 대해서만 언급하겠습니다.

======================mysqdump useage==========================
1>테이블만 백업하는 방법
./mysqldump [option] database_name [tables....] >file명
2>데이터베이스가 2개 이상될때 사용하는 방법
./mysqldump [option] --databases [option] database_name1 database_name2 ....... > file명
3>모든 데이터베이스를 백업할때
./mysqldump [option]] --all-databases [option] >file명

======================mysqdump 활용==========================
※일반적인 백업과 복구 방식
백업형식
mysqldump -u [USERID] -p database_name > backupDB.sql     //백업
복구형식
mysqldump -u [USERID] -p database_name < backupDB.sql     //복구

ex>
mysqldump -u root -p test > test.sql           //백업
mysqldump -u root -p test < test.sql           //복구

※특정 데이터베이스의 특정 테이블의 백업과 복구
백업형식
mysqldump -u [USERID] -p database_name tables_name > db_tables.sql
복구방법
mysql -u [USERID] -p database < db_tables.sql

ex>
mysqldump -u root -p test uid < savetables.sql
mysql -u root -p test < savetables.sql

※다수의 데이터베이스에 대한 복구와 백업
백업형식
mysqldump -u [USERID] -p --databases [option] database_name1 database_name2 .... > file
복구형식
mysql -u [USERID] -p < file

ex>
mysqldump -u root -p --databases test test1 > dbs.sql
mysql -u root -p < dbs.sql

※전체 데이터베이스 백업하기
백업형식
mysqldump -u root -p --all-databases > file
mysql -u root -p < file

ex>
mysqldump -u root -p --all-databases > all.sql
mysql -u root -p < all.sql


간략하게만 살펴본 db복구에 관한 내용이였스빈다..
간략하지요..
다음장에서 정말 실무에 필요한 내용을...

신고
Posted by 신머루군
TAG MySQL
스키마 객체의 데이터를 조회, 입력, 수정, 삭제, lock관련이다..
insert, update, delete, select, lock table, explanu plan, call등이 있다..

mysql(5)의 test table를 예로 ....작업합니다
test 테이블의 구조는 아래와 같습니다.
uid        int(4)
name     varchar(20)
ssd       varchar(15) //주민번호였는데....-_-; 좀 민감해지네요 임시적으로 메일주소로 변경하여 사용합니다)
=======================================================================
테스트 테이블에 샘플로 입력
>insert into test(uid,name,ssd) values('0','신머루군','cinosnoba@hotmail.com');

위와 같은 형식으로 넣을수도 있지만 test테이블에 대한 명세가 빠져도 무방합니다
>insert into test values ('1','test01','test01@naver.com');

특정테이블에만 넣고 싶을때에는?
>insert into test values (uid,name) values('2','test02');

확인하는 방법은?
>select * from test;

=======================================================================
select 구문에 대해서 삽질을 해보아요...OTL;

select 필드명1,필드명2
from 테이블명
where 검색조건
order by 필드명 {,필드명}
group by 필드명{,필드명}
having 검색조건

중요한건 select / from 입니다...가장 기본이 되어집니다.
위 테이블로 테스트를 해봅시다
>select * from test;
uid / name / ssd
0/신머루군/cinosnoba@hotmail.com
1/test01/test01@naver.com
2/test02/

where문 사용하기
>select * from test where name='신머루군';            //혹은
>select * from test where name LIKE "%신머루군%";  //%는 해당 문자열을 포함하면이라는 조건입니다.
uid/name/ssd
0/신머루군/cinosnoba@hotmail.com
만 나타나집니다.

name만 보고싶습니다...uid, ssd가 필요 없고
>select name from test where name LIKE '신머루군';
name
신머루군

이것을 응용으로 좀더 들어가봅시다..
>select * from test where name LIKE 'test%' and ssd='test%'
uid/name/ssd
1/test01/test01@naver.com

>select * from test order by name;
이름형식으로 소팅이 되어집니다...(생략합시다..;머리속에 끄집어 내는거라..)

>select count(*) from test where name LIKE 'test%';
이름중 test로 시작하는아이디들에 대해서 뽑아 냈습니다. 결과값은 '2'

>select avg(date) from test where name LIKE 'test%';
date라는 값이 없습니다..에러가 나지만 avg라는 명령은 평균값을 내줍니다..test로 시작하는 이름에 대해서만

=======================================================================
update 구문..................덜덜덜

>update test set name='test0200' where uid='2';
uid가 2인 사용자의 이름을 test0200으로 변경하였스빈다..

>update test set uid=uid+10;
uid를 일괄적으로 10씩 증가를 시킴니다.

=======================================================================
delete 구문
>delete from test where uid='2';
uid가 2인 특정 데이터를 삭제 합니다 테이블을 보면 '2'에 대한 정보가 싹 사라졌겠죠

신고
Posted by 신머루군
TAG MySQL

테이블 속성 // 구조 변경 들어가기전 사전 작업
./mysqladmin -u root -p create tt

./mysql -u root -p tt;
>create tables test(
uid mediumint(4) unsigned DEFAULT '0' NOT NULL,
name varchar(20) DEFAULT "" NOT NULL,
ssd varchar(15) DEFAULT "" NOT NULL,
PRIMARY KEY (uid)
);

>show tables;
tt 라는 데이터베이스에 test라는 테이블이 생성된다!
>desc test;
uid/name/ssd에 대한 정보가 나타난다

======================테이블 속성 // 구조 변경========================
test라는 테이블에 새로운 필드(email) 추가
>alter table test add column email varchar(20);
>desc test;
uid/name/ssd/email에 대한 정보가 출력

test테이블의 email 항목을 hostname으로 변경해보자
>alter table test change column email hostname varchar(30);
>desc test;
uid/name/ssd/hostname에 대한 정보가 출력

test테이블에서 hostname항목을 삭제해보자 (필드삭제)
>alter table test drop column hostname;
>desc test;
uid/name/ssd에 대한 정보가 출력

test테이블을 삭제해보자
>drop table test;
>show tables;
아무런 정보가 나타나지 않는다...OTL

신고
Posted by 신머루군
TAG MySQL
sql파일로 예제를 보고 있는데 주의 사항
sql파일에서 잘못되어진 구문이 발생하게 되어지면 sql이 에러가 난 부분 이후! 부터 입력이 되어지지 않는다는점을 명심해야한다

mysql에서 실행되어지고 있는 프로세서 리스트 보기
./mysqladmin -u root -p processlist    혹은
./mysql -u root -p
>show processlist;

mysql 에러원인을 찾아 보고 싶을때 (VERBOSE 혹은 그냥도 된다)
/usr/local/mysql/bin/perror -v [NUM]

========================mysql admin===========================
※pp는 database 임시적인 이름이다
database 생성
mysqladmin -u root -p create [pp]

database 삭제
mysqladmin -u root -p drop [pp]

mysql권한 테이블 갱신
mysqladmin -u root -p reload

접속자 리스트 및 프로세서 리스트 확인하기
mysqladmin -u root -p processlist

접속되어있는 사용자 강제로 끊기
mysqladmin -u root -p kill [threadNUM]

실행정보 확인 (uptime, query등등)
mysqladmin -u root -p status      혹은 확장형
mysqladmin -u root -p extended-status
혹은 mysql에 접속하여
./mysql -u root -p
>show status;

mysql환경변수 확인하기
mysqladmin -u root -p variables;
혹은 mysql에 접속하여
./mysql -u root -p
>show variables;

기타 여러가지 정보들~(uptime, ver, socket, query avg time)
./mysqladmin -u root -p version

mysql이 죽었느냐 살았느냐
./mysqladmin -u root -p ping
신고
Posted by 신머루군
TAG MySQL
요점은 table grant권한을 생략하고 실행할수있으면 되는것이다!!

./mysqld_safe --skip-grant-table 옵션을 사용
절차
1>기존 mysql 데몬 내리기
kill -9로 강제종료
2>skip grant
./mysqld_safe --skip-grant-table
3>mysql로 패스워드 없이 진입
./mysql -u root mysql;
4>패스워드 변경 (update)
>update user set password=password('임의패스워드') where user ='root';
5>mysql 데이터 동기화
>flush privileges;
6>mysql 종료와 정상시작
kill -9 &&./mysqld_safe &
신고

'02 .administration > iv. mysql' 카테고리의 다른 글

mysql(5) DDL(Data Definition Language)  (0) 2008.08.19
mysql(4) - tip? mysqladmin  (0) 2008.08.19
mysql(3) - 패스워드 복구  (0) 2008.08.19
mysql(2) - db테이블 생성  (0) 2008.08.19
mysql(1) 사용자 생성 패스워드변경//시작하기  (0) 2008.08.19
mysql 세팅  (0) 2007.11.18
Posted by 신머루군
TAG MySQL

특정 파일에 저장된 sql 실행하여 database 만들기
aa.sql 이라는 파일로 가정합시다.
         create database aa;
./mysql -u [USERIID] -p mysql < ./aa.sql

확인 방법
./mysql -u [USERID] -p mysql
>show databases;

table만들기
cc.sql
create table cc(
uid int(3) NOT NULL,
name var(12) NOT NULL,
PRIMARY KEY (uid)
);

./mysql -u [USERID] -p [DB_NAME]
확인방법
./mysql -u [USERID] -p [DB_NAME]
>혹은 use DB_NAME
>show tables;
>select * from cc;
>desc cc;
-->cc라는 테이블이 만들어졌고, 해당 내용은 uid와 name가 되어져 있습니다.

=================새로운 사용자를 위한 query문====================
new.sql
create database newuser;  //newuser라는 테이터베이스를 생성
insert into db 
values('localhost','newuser','ppp','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); //Y=12
//newuser라는 관리데이터베이스의 db테이블에 새로운 데이터베이스와 생성과 소유자 권한을 설정

insert into user
values ('localhost','ppp','password('임의입력')','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','1','','','','','');
//user테이블에 ppp라는 새로운 사용자의 패스워드와 권한을 입력)

./mysql -u root -p mysql < ./new.sql

신고

'02 .administration > iv. mysql' 카테고리의 다른 글

mysql(4) - tip? mysqladmin  (0) 2008.08.19
mysql(3) - 패스워드 복구  (0) 2008.08.19
mysql(2) - db테이블 생성  (0) 2008.08.19
mysql(1) 사용자 생성 패스워드변경//시작하기  (0) 2008.08.19
mysql 세팅  (0) 2007.11.18
mysql configure  (0) 2007.11.18
Posted by 신머루군
TAG MySQL
====================기초=====================
mysql 실행 시키는 방법
./mysqld_safe &

쿼리로그 옵션을 주는 방법
./mysqld_safe --log=[query.log]

바이너리 로그를 주는방법
./mysqld_safe --log-bin=[binlog.log]
binary로 되어진것을 볼때에는 mysql/bin에 있는 mysqlbinlog명령어를 통해서 본다

지연이 발생되는 쿼리만 뽑아 보기
./mysql_safe --log-slow-queries=[slow_query.log]

종료시키는 방법
./mysqladmin -u root -p shutdown

mysql들어가는 방법
./mysql -u [user] -p [database]
혹은 (가급적 비추한다...history에 남으니)
./mysql -u [user] -p '[passwd]' [database]

==================사용자====================
패스워드 변경 (root사용자)
./mysqladmin -u [user] -p passwd [변경할passwd]

설치 직후 root pass변경
./mysqladmin -u root password [변경할passwd]
설치 후 root pass변경
./mysqladmin -u root -p password 현재패스워드

db에 접속하여 특정 사용자 패스워드변경
./mysql -u root -p mysql
passwd:입력
update user set password=password('변경할패스워드') where user='[userID~root가능]'
신고

'02 .administration > iv. mysql' 카테고리의 다른 글

mysql(4) - tip? mysqladmin  (0) 2008.08.19
mysql(3) - 패스워드 복구  (0) 2008.08.19
mysql(2) - db테이블 생성  (0) 2008.08.19
mysql(1) 사용자 생성 패스워드변경//시작하기  (0) 2008.08.19
mysql 세팅  (0) 2007.11.18
mysql configure  (0) 2007.11.18
Posted by 신머루군
TAG MySQL

다른거 다 제쳐두고 일단 확실한것들 부터 주르르르륵~ 써 내려가봐야겠다..


일단 APM을 세팅하기 위한 준비단계이기전에 말해두고 싶은것은...

영어공부를 않해도 좋지만, 영어를 멀리하지는 말아라....라고 말하고 싶다..(ㅜㅜ)


물론 국내 많은 시스템 관리자들이 수 많은 문서를 내놓고 있고, 한글화 하여 우리가 보기 쉽게끔 해놓았다. 하지만 그들만의 문서로는 해결할수 없어서, 게시판에 글을 올리고, 또 그 질문에 답을 구한다. 하지만 그것들은 이미 다른방법으로 찾으면 해결책은 있다.


시작하며..

시스템은 레드헷9을 벗어나 페도라 코어 4로 설치하였다. (VMware에서 테스트 작업을 해보았다.)


mysql은 현재 버전 5.0.16 발표 되었다. 수많은 DB관리자들이 ORACLE/MSSQL/MYSQL을 선택하고 있고, 응용이 많이 되어져있다. 웹쪽으로는 mysql이 많이 사용되는것이 현실이다.

(레드헷 9에서 오라클9i 설치 해보려고 했지만 어떠한 버그때문에 성공하지 못하였따)


그리고 웹 서버를 세팅하기전 각각의 모듈을 위해서라면 mysql부터 설치하는것이 바람직하다고 생각한다. mysql은 단순 웹 페이지뿐만 아니라 추후 웹 메일 시스템이나 imap에도 관련이 되어질수 있기때문에 웹쪽에서 가장 중요하고, 모든 데이터관리를 할려면 sql은 빼놓을수 없는 부분중 하나일것이다.


일단 mysql 5.0.16 소스버전을 다운받아보자 (http://dev.mysql.com/downloads/mysql/5.0.html)

다운을 받았다면 그 다음 설치과정부터 논스톱으로 이야기 해보겠다.

(모든 과정은 root로 진행한다)


     shell> groupadd mysql
     shell> useradd -g mysql mysql
     shell> tar zxvf mysql-VERSION.tar.gz
     shell> cd mysql-VERSION
     shell> ./configure --prefix=/usr/local/mysql --with-charset=euckr
     shell> make
     shell> make install
     shell> cp support-files/my-medium.cnf /etc/my.cnf
     shell> cd /usr/local/mysql
     shell> bin/mysql_install_db --user=mysql
     shell> chown -R root  .
     shell> chown -R mysql var
     shell> chgrp -R mysql .
     shell> bin/mysqld_safe --user=mysql &

 


위와 같은 순서대로 진행한다면 무리 없이 진행이 될것이라고 생각한다.


단지 주의를 할것이라고 한다면 ./configure 옵션들이 너무나 많다는것을 알수가 있을것이다. 솔직히 수 많은 옵션들을 일일히 다 알고 다닐수는 없는 것들이다. ./configure 옵션을 어떻게 주느냐에 따라서 DB의 퍼포먼스가 틀려지고, 맞물려 시스템의 퍼포먼스와도 연결이 된다. 시스템의 퍼포먼스를 위해서라면 configure의 옵션들을 활성화 시켜야 하는것들이 몇몇가지 있을것이다. 그것은 mysql에있는 INSTALL문서를 참조하면 될것이다.


그리고 다른 주의점은 mysql에서 table에 한글을 쓸때 문제가 발생할 우려가 있다. mysql 3.x버전대와 4.x으로 넘어오면서 국내 코드가 바뀌였다는걸 알수가 있다.

과거 3.x의 mysql에서는 euc_kr 로 세팅을 해주었던 반면 4.x을 넘어 오면서부터는 euckr로 언더바가 없어진것을 알수가 있었다. 이점만 주의 한다면 mysql은 무리 없이 설치를 진행할수 있으리라 본다.



시스템 관리자는 커널/해킹의 위험/네트워크 관리도 중요하겠지만, db가 복구 불가능한 상태로 되어버린다면 그 시스템을 복구는 할지언정 모든 정보는 사라지게되니, db에 대해서는 관리자라면 db에 관해서 지식을 쌓아두어야 하지 않을까 생각이 되어진다.

신고

'02 .administration > iv. mysql' 카테고리의 다른 글

mysql(4) - tip? mysqladmin  (0) 2008.08.19
mysql(3) - 패스워드 복구  (0) 2008.08.19
mysql(2) - db테이블 생성  (0) 2008.08.19
mysql(1) 사용자 생성 패스워드변경//시작하기  (0) 2008.08.19
mysql 세팅  (0) 2007.11.18
mysql configure  (0) 2007.11.18
Posted by 신머루군
TAG MySQL

거의 2페이지가 넘어가는 분량의 내용을 클릭 실수로 날려먹었습니다 털썩..ㅠㅠ 미치겠군요.

속성으로 써 내려가겠습니다. 중요한것들은 안빼먹고 쓰도록 노력 해봐야겠습니다..-_-;


     shell> groupadd mysql
     shell> useradd -g mysql mysql
     shell> tar zxvf mysql-VERSION.tar.gz
     shell> cd mysql-VERSION
     shell> ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-client-ldflags=-all-static --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=euckr --disable-debug

     shell> make && make install
     shell> cp support-files/my-medium.cnf /etc/my.cnf
     shell> cd /usr/local/mysql
     shell> bin/mysql_install_db --user=mysql
     shell> chown -R root  .
     shell> chown -R mysql var
     shell> chgrp -R mysql .
     shell> bin/mysqld_safe --user=mysql &

mysql 설치가이드에 나오는 퀵 가이드 입니다..-ㅠ-;;;


configure 옵션에 관해서 써 내려가보도록 하겠습니다

--prefix=/usr/local/mysql

설치가 될 폴더를 뜻합니다.


--localstatedir=/usr/local/mysql/data

data 저장될 주소입니다. 디폴트 설정시 `/usr/local/var' 입니다.


--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
소켓관련된 패스를 재설정 하는 부분입니다.


--with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
정적으로 mysql을 컴파일 합니다.


CC=gcc CXX=gcc ./configure

'libg++' or `libstdc++' 없이 gcc만으로 컴파일을 합니다.


--prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static
좀더 최적화된 바이너리코드를 생성해냅니다.


./configure --with-charset=CHARSET
국가 언어설정입니다. 3.x대에는 euc_kr 옵션을 그 이상은 euckr옵션을 써줍니다.


./configure --with-collation=COLLATION
sort에 관련된 옵션입니다 기본은 라틴으로 설정되어있습니다.


--with-debug
컴파일시 버그가 있을때 체크를 해두는 옵션입니다. 컴파일 퍼포먼스에 영향을 줍니다.

--disable-debug (without일지도 모릅니다..덜덜)

일반적으로 디버그 모드를 사용하지 않는 관계로 이 옵션을 많이 줍니다. (db튜닝시에는 디버그 옵션이 있어야 하는것으로 알고 있습니다.)


-enable-thread-safe-client

쓰레드 관련 어플리케이션이 있을시에 사용합니다.


-with-big-tables

커다란 테이블에 사용되는 옵션입니다. mysql 5.0.4부터 지원된다고 하는군요


그래서 새롭게 세팅될 configure는 아래와 같습니다

./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-client-ldflags=-all-static --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=euckr --disable-debug


그리고 서포트 폴더에 보시면 몇몇가지 파일이 있는데 이는 자신의 컴퓨터 메모리와 관련되어져 사용되는 옵션입니다. 자신의 메모리를 확인후 (물리적 메모리) 자기에게 맞는 파일을 cp하시면 됩니다.


아아 대충 중요한 부분은 정리가 끝난듯 싶습니다..-_-; 일하면서 하는거라 순간적으로 화가나더군요.. 어흑 좌절스럽습니다


실질적으로 운영에 필요한것들이 더 많습니다. 이건 아직 초보자 단계이죠..-_-; 튜닝까지는 DBA쪽에서 대부분 하기때문에 기본적인 운영방법만 알고 있으시면 그다지 문제가 될것 같지는 않습니다. 추후 운영에 관련된 포스팅을 더 하도록 하겠습니다.


mysql설치를 대충 마친후에 oracle에 관련된 세팅 방법을 포스팅 해보도록 하겠습니다.


추가내용


강제로 MIT_pthreads를 실행할 때
./configure --with-mit-threads

신고

'02 .administration > iv. mysql' 카테고리의 다른 글

mysql(4) - tip? mysqladmin  (0) 2008.08.19
mysql(3) - 패스워드 복구  (0) 2008.08.19
mysql(2) - db테이블 생성  (0) 2008.08.19
mysql(1) 사용자 생성 패스워드변경//시작하기  (0) 2008.08.19
mysql 세팅  (0) 2007.11.18
mysql configure  (0) 2007.11.18
Posted by 신머루군

티스토리 툴바