2015년 2월 14일 토요일

centos에 vsftpd 설치하기

centos에 vsftpd 설치하기

윈도우에서 리눅스에 파일을 업로드하기 위해서는 리눅스 서버에 ftp를 설치해야 합니다. 그래서 이번에는 파일을 업로드하기 위해서 vsftpd를 설치하도록 하겠습니다. vsftpd는 많은 리눅스 개발 단체에서 기본 ftp 데몬으로 사용하고 있을 정도로 활용성과 보안면에서 뛰어난 데몬이라고 합니다. 

vsftpd는 centos 6.6에서 설치했습니다.

1. vsftpd 설치하기

# yum install -y vsftpd

2. vsftpd.conf 설정하기

# vi /etc/vsftpd/vsftpd.conf

밑에 해당하는 줄을 찾아서 다음과 같이 변경합니다.

anonymous_enable=NO  //익명 접속 가능 여부
local_enable=YES  // 로컬 계정 사용자의 접속 허용 여부
write_enable=YES  // write 명령어 허용 여부
local_umask=022  // 로컬 계정 사용자용 umask
xferlog_enable=YES  // 파일 전송 로그 기록 여부
connect_from_port_20=YES  // 20번 포트로 접속 허용 여부
xferlog_file=/var/log/xferlog  // 파일 전송 로그 파일명
xferlog_std_format=YES  // xferlog 표준 포맷으로 로그를 남길지 여부
chroot_local_user=YES  // 사용자의 홈 디렉토리를 변경 제한을 위한 설정
listen=YES  // standalone으로 운영하려면 YES
pam_service_name=vsftpd  // PAM 파일명을 지정
userlist_enable=YES
tcp_wrappers=YES

3. 방화벽에 포트 추가

# vi /etc/sysconfig/iptables

밑의 줄을 추가합니다.

-A INPUT -m state --state NEW -m tcp -p tcp --dport 20:21 -j ACCEPT

4. 데몬 재시작 및 chkconfig에 등록

# /etc/init.d/iptables restart
# /etc/init.d/vsftpd start
# chkconfig vsftpd on

이상~!


mysql 데이터 타입

mysql 데이터 타입


리눅스를 사용하시는 분들 중에 mysql 안 만져보신 분들은 없을텐데요. 저도 mysql을 다루어 보면서 데이터베이스를 공부하고 있습니다.​ 이번 포스트는 mysql의 데이터 타입에 대해서 적어보도록 하겠습니다. 

▶ char 데이터 타입

char와 varchar의 공통점은 모두 텍스트 기반 데이터 타입이라는 것입니다. 두개로 나눈 것은 차이점이 있기 때문인데 차이점은 용량 할당방식에 있습니다. char는 욕심쟁이처럼 처음에 지정해주는 용량을 모두 사용(임의의 텍스트로 채움)하는 반면 varchar는 처음에 지정한 용량이 있다고 하더라고 필요한 만큼만 사용하고 나머지는 빈공간으로 남깁니다. varchar가 무조건 좋은 것은 아닌데 varchar는 오버헤드가 필요하기 때문에 한국사람 이름 같이 길이가 일정한 데이터가 많을 경우에는 char가 더 효율적이라고 할 수 있습니다.

타입명사용되는 바이트설명
char(n)n ≤ 255char는 처음에 지정한 바이트 숫자가 용량으로 할당된다.
예) char(5) 'jun'은 5바이트, char(50) 'jun'은 50바이트
varchar(n)n ≤ 65535varchar는 사용한 바이트만큼만 용량으로 할당된다.
예) varchar(5) 'jun'은 3바이트, varchar(50) 'jun'도 3바이트

▶ binary 데이터 타입

binary 데이터 타입은 관련된 문자 세트가 없는 문자의 전체 바이트를 저장하는데 사용됩니다.

타입명사용되는 바이트설명
binary(n) 
byte(n)
n ≤ 255char의 형태로 바이너리 데이터를 가진다.
varbinary(n)n ≤ 65535varchar의 형태로 바이너리 데이터를 가진다.


▶ text와 varchar 데이터 타입

text와 varchar는 비슷하지만 작은 차이점이 있습니다. 
눈에 띄는 차이점은 길이 차이입니다. varchar보다 text가 훨씬 깁니다.
다른 차이점은 varchar는 index가 가능하지만 text는 index가 불가능합니다.
그래서 검색에는 varchar가 더 용이합니다.

타입명사용되는 바이트설명
tinytext(n)n ≤ 255문자열로 취급한다.
text(n)n ≤ 65535문자열로 취급한다.
mediumtext(n)n ≤ 16777215문자열로 취급한다.
longtext(n)n ≤ 4294967295문자열로 취급한다.

▶ BLOB 데이터 타입

BLOB(Binary Large OBject)는 65535 바이트를 넘는 바이너리 데이터에 유용합니다. 하지만 기본값을 가질 수 없습니다.


타입명사용되는 바이트설명
tinyblob(n)n ≤ 255바이너리 데이터로 취급한다.
blob(n)n ≤ 65535바이너리 데이터로 취급한다.
mediumblob(n)n ≤ 16777215바이너리 데이터로 취급한다.
longblob(n)n ≤ 4294967295바이너리 데이터로 취급한다.

▶ 
숫자형 데이터 타입

타입명사용되는 바이트최소값최대값
tinyint1-128
0
127
255
smallint2-32768
0
32767
65535
mediumint3-8388608
0
8388607
16777215
int or integer4-2147483648
0
2147483647
4294967295
bigint8-9223372036854775808
0
9223372036854775807
18446744073709551615
float4-3.40E+45
(no unsigned)
3.40E+45
(no unsigned)
duble or real8-1.7976E+320
(no unsigned)
1.7976E+320
(no unsigned)

이상~!

mysql에서 테이블과 컬럼 생성, 수정, 삭제하는 방법

mysql에서 테이블과 컬럼 생성, 수정, 삭제하는 방법

mysql을 설치하고 나면 데이터베이스를 생성하고 테이블에 데이터를 입력하는 단계를 거칩니다. 이번 포스팅에서는 테이블과 컬럼을 생성하고 수정하고 삭제하는 과정을 간략하게 설명해보았습니다.

▶ 테이블 생성
mysql> create table [테이블명] (컬럼명 타입, 컬럼명 타입);  // 타입은 다양하지만 기본적으로 사용하는 타입은 varchar, char 같은 문자형 타입, int 같은 숫자형 타입이 있습니다. 더 자세한 내용은 밑의 하이퍼링크를 눌러주세요.

▶ 테이블 삭제
mysql> drop table [테이블명];

▶ 테이블명 수정
mysql> alter table [테이블명] rename [변경할테이블명];

▶ 컬럼 추가
mysql> alter table [테이블명] add [컬럼명] [타입] [옵션];
예) alter table [테이블명] add [컬럼명] varchar(20) not null '';

▶ 컬럼 삭제
mysql> alter table [테이블명] drop [컬럼명];

▶ 컬럼명 변경 및 타입 변경
mysql> alter table [테이블명] change [컬럼명] [변경할컬럼명] varchar(12);

▶ 컬럼 타입 수정
mysql> alter table [테이블명] modify [컬럼명] varchar(14);

이상~!

링크 클릭! mysql 데이터 타입

mysql 테이블에 있는 데이터 삭제하기

mysql 테이블에 있는 데이터 삭제하기

mysql에 컬럼을 잘못 입력하거나 내용을 잘못 입력했을 경우 수정하는 방법도 있지만 아예 지우고 다시 하는 방법이 가장 편할 때가 있습니다. 저도 이번에 테이블에 있는 데이터가 꼬이는 바람에 테이블의 데이터를 삭제하는 방법을 이용했습니다.

# mysql -u root -p // mysql에 접속합니다.

mysql> use 데이터베이스;
mysql> show tables;
mysql> delete from 테이블명 [where 검색조건]; 
delete from 테이블명 뒤에 별도의 조건을 입력하지 않으면 해당 테이블의 데이터가 모두 삭제됩니다.

* 사용 예 

mysql> delete from instance where name = jun;
mysql> delete from instance where size = 20;

이런 식으로 지우고자 하는 조건들을 입력하면 조건에 해당하는 데이터만 삭제됩니다.

이상~!

2015년 2월 8일 일요일

yum repository가 꼬였을 경우 yum 초기화하기

yum repository가 꼬였을 경우 yum 초기화하기

yum 명령어를 이용해서 어플리케이션을 설치하다보면 가끔 repository가 꼬여서 yum install 등 옵션이 먹히지 않게 됩니다. 저 같은 경우는 openstack repository를 설치하다가 이런 경우가 몇 번 있었는데요. 간단하게 해결할 수 있는 방법이 있어서 글을 적어봅니다.

1. /etc/yum.repos.d/ 이동해서 repository 지우기

# cd /etc/yum.repos.d/ //repository 저장 디렉토리로 이동 
# ls -al  // repository 확인
# rm -f 삭제할 repository  // base는 지우시면 안돼요. 지웠다가 낭패 봤어요...
# ls -al  // 확인

2. /var/cache/yum/에서 캐쉬디렉토리 삭제

# cd /var/cache/yum/
# ls -al // 캐쉬 디렉토리 확인
# rm -rf x86_64

3. headers, packages, metadata 삭제

# yum clean headers
# yum clean packages
# yum clean metadata

2015년 2월 7일 토요일

gz와 bz2 압축하기와 압축해제하기

gz와 bz2 압축하기와 압축해제하기

1. gzip 압축하기와 압축해제하기

- 압축하는 방법
# gzip 파일명

- 압축해제 방법
# gzip -d 파일명.gz 
# gunzip 파일명.gz  // 2가지 방법 존재


2. bzip2 압축하기와 압축해제하기

- 압축하는 방법
# bzip2 파일명

- 압축해제 방법
# bzip2 -d 파일명.bz2 
# bunzip2 파일명.bz2  // 역시 2가지 방법 존재

단, 파일명.tar.gz는 tar 압축해제 방법으로 해제!

2015년 2월 2일 월요일

glance 설치 중 CRITICAL glance [-] ValueError: Tables "migrate_version" have non utf8 collation, please make sure all tables are CHARSET=utf8 에러를 만났을 때

glance 설치 중 CRITICAL glance [-] ValueError: Tables "migrate_version" have non utf8 collation, please make sure all tables are CHARSET=utf8 에러를 만났을 때

glance table을 생성하다 보면 'CRITICAL glance [-] ValueError: Tables "migrate_version" have non utf8 collation, please make sure all tables are CHARSET=utf8' 이런 에러를 만날 수 있습니다. 이런 에러가 나오면 table이 제대로 생성이 안되는 현상이 나타납니다. 저 에러는 /var/log/glance/api.log의 맨 밑에서 찾아볼 수 있습니다.

이 에러가 나오면 당황하지 말고 mysql에 해당 명령어를 입력해주면 됩니다.

# mysql -u root -p
mysql> use glance;
mysql> alter table migrate_version convert to character set utf8 collate utf8_unicode_ci;
mysql> flush privileges;
mysql> exit

다시, 
# su -s /bin/sh -c "glance-manage db_sync" glance 
해당 명령어를 입력하면 테이블에 올바르게 생성된 것을 볼 수 있습니다.