싸미~*

[Character set] UTF-8 과 유니코드

.Tech

[참고] UTF-8 and Unicode FAQ for Unix/Linux

(원본 : http://www.cl.cam.ac.uk/~mgk25/unicode.html)


UTF-8 vs 유니코드 차이

신고

[Linux] 사용자 만들기, 권한

.Tech/Linux

1. 사용자 추가 / 삭제

adduser <user>

deluser <user>

    deluser --remove-home <user>

    delluser --remove-all-files <user>

2. 디렉토리 권한 및 변경

- 권한 변경

    chmod [Option] MODE File(or Dir)

     [tip drwx rwx rwx = 소유자 그룹 일반

- 소유자 변경

    chown [option] <user>:<group> File(or Dir)

신고

[스크랩] MySQL 설치하기

.Tech/SQL
출처 : 쌀콩닷컴 (http://ssalkong.com/study/linux/mysql/mysql_install.html)
======================================================================

Mysql 설치

============================================================================================================
소스파일 설치
============================================================================================================
1. 압축 풀기
먼저 업로드한 mysql의 압축을 풀어줍니다. /usr/src 에 소스파일을 받으셨다면 # cd /usr/src에서 풉니다.
# tar xvzf mysql.xxxx
풀으시면 mysql.x.x.xx 폴더가 생깁니다. 생성된 mysql 디렉토리로 들어가서 아래 순서대로 해주면 됩니다.

2. configure(환경설정) - 약 1-2분 소요
# cd /usr/src
# ./configure --prefix=/usr/local/mysql-4.1.10 --localstatedir=/usr/local/mysql-4.1.10/data --with-charset=euckr
-설명 --prefix=/usr/local/mysql-4.1.10 [설명: --prefix는 mysql 이 설치될경로
--localstatedir=/usr/local/mysql-4.1.10/data [설명: 디비경로]
--with-charset=euc_kr [설명]- with-charset 문자셋 지정 euc_kr 한국어 4.1이상은 euckr 입니다.

3. make - 약 5-10분 소요
]# make
래드햇 9.0 설치시 make가 안되고 gcc, cc 같은 에러나는 분들은 설치하실때 개발도구를 선택하지 않아서 c 컴파일러가 설치가되지 않은 경우입니다. 따로 설치해줄수 있지만 다시 설치하시기를 권해드립니다. 리눅스 서버 운영을 제대로 하기 위해선 1000번은 설치 해봐야 하니까요 ^^

4. make install - 약 2-5분 소요
]# make install

5. mysql 사용자 추가
# adduser mysql <- 왜 해주는지 정확히 모름

6. mysql_install_db
설치가 되고 난 후에 /usr/local/mysql로 이동해 보시면 Mysql DB에 필요한 파일들이 생성이 되어 있습니다. 그리고 /usr/local/mysql/bin 디렉토리에 보시면 Mysql 에 필요한 여러가지 실행파일들이 존재합니다. 이들 실행파일들 중 mysql_install_db라는 명령어를 이용하여 data 라는 디렉토리를 생성한 후에 Mysql 관리 DB와 test DB를 data 디렉토리 내에 생성하여 줍니다. bin 디렉토리에서 # ./mysql_install_db 를 하시면 모두 생성됩니다.
여기까지 무난히 잘 설치 될거라 생각됩니다.
# /usr/local/mysql/bin/mysql_install_db

7. data 디렉토리 소유권 변경
data 디렉토리의 소유권을 변경해줍니다. mysql 사용자를 추가하였는데 /usr/local/mysql/data 디렉토리의 소유권이 root로 되어있으면 안됩니다. 소유권을 mysql로 변경해줍니다.
/usr/local/mysql 밑에 data 디렉토리의 권한을 바꾸는것이기 때문에 /usr/local/mysql 로 이동해서 아래 명령을 실행합니다.
# chown -R mysql.mysql data

drwxr-xr-x 12 root root 4096 12월 10 15:12 .
drwxr-xr-x 12 root root 4096 12월 10 14:45 ..
drwxr-xr-x 2 root root 4096 12월 10 14:45 bin
drwx------ 4 mysql mysql 4096 12월 10 15:27 data
drwxr-xr-x 3 root root 4096 12월 10 14:45 include
drwxr-xr-x 2 root root 4096 12월 10 14:45 info
drwxr-xr-x 3 root root 4096 12월 10 14:45 lib
drwxr-xr-x 2 root root 4096 12월 10 14:45 libexec
drwxr-xr-x 3 root root 4096 12월 10 14:45 man
drwxr-xr-x 6 root root 4096 12월 10 14:45 mysql-test
drwxr-xr-x 3 root root 4096 12월 10 14:45 share
drwxr-xr-x 5 root root 4096 12월 10 14:45 sql-bench


8.Mysql 실행 # /usr/local/mysql/bin/mysqld_safe &
Mysql 실행은 /usr/local/mysql/bin 디렉토리에 있는 mysqld_safe 를 위와 같이 백그라운드로 실행을 시키면 됩니다.

----------------------------------------------------------------------------------------------------------
정상적으로 mysql이 실행됐을때
[root@test mysql]# Starting mysqld daemon with databases from /usr/local/mysql/data
이렇게 나오고 #가 안떨어집니다. ctrl + c 합니다. & 를 붙인건 백그라운드로 돌린다는 말입니다.
이제 /usr/local/mysql/bin/mysql 이라고 치면 mysql 에 접속합니다. mysql > 떨어집니다.

# mysqld_safe & <- MySQL 데몬 시작하기 &는 백그라운드로 mysql을 띄운다

<- 프로세스 확인하기
[root@test root]# ps -ax | grep mysqld
1523 ? S 0:00 /bin/sh ./mysqld_safe
1541 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
1543 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
1544 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
1545 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
1546 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
1547 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
1548 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
1549 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
1550 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
1551 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
[root@test root]#

nmap 으로 확인
[root@ssalkong bin]# nmap localhost

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1597 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
25/tcp open smtp
111/tcp open sunrpc
3306/tcp open mysql
mysql 데몬이 떳으면 OK

-----------------------------------------------------------------------------------------------------------
에러 잡기
# /usr/local/mysql/bin/safe_mysqld &
[1] 9822
# bash: /usr/local/mysql/bin/safe_mysqld: No such file or directory
[1]+ Exit 127 /usr/local/mysql/bin/safe_mysqld
위와 같은 에러가 나는 사람도 있을겁니다. 왜 그럴까요? 모든 에러는 영어를 해석하시고 물어보는게 예의입니다.
# bash: /usr/local/mysql/bin/safe_mysqld: No such file or directory 파일이나 디렉토리가 없다.
bin 디렉토리에 가보면 safe_mysqld 라는 파일이 없습니다. 래드햇 7.x 이상부터는 mysqld_safe 로 명령어가 바뀌었습니다. 예전 책이나 예전 문서로 삽질 그만하시구요...

]# /usr/local/mysql/bin/mysqld_safe &
실행후 또한 아래와 같은 에러가 나는 경우가 있습니다.
[root@test bin]# chown: `mysql': 잘못된 사용자
Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file /usr/local/mysql/data/test.sojung.net.pid
041104 17:56:09 mysqld ended

chown: `mysql': 잘못된 사용자
mysql 은 디비가 소유권 그룹이 mysql 로 지정되어 있어야합니다. 그런데 지정할라고하니 mysql 유저가 없어서 "잘못된 사용자" 라는 에라가 나는 것입니다. 어떻게 해야 할까요? 만들어줘야죠... mysql 이라는 이름으로 계정을 하나 만들어 줍니다. 이때 비번은 지정하지 않습니다. mysql 계정만 만드세요! mysql 은 유저가아니라 스템적으로 필요한거라 비번부여도 필요없고의 홈디렉토리도 필요없습니다. # adduser mysql 이렇게만 해주시면 됩니다.
이제 다시한번 [root@test mysql]# /usr/local/mysql/bin/safe_mysqld & 명령어로 mysql 을 실행시켜봅니다.
잘되면 좋은거구요.. 아래와 같은 에러가 나시는분들 보세요..

[root@test bin]# Starting mysqld daemon with databases from /usr/local/mysql/data STOPPING server from pid file /usr/local/mysql/data/test.sojung.net.pid
041104 20:00:41 mysqld ended

여기서 나가려면 zterm 경우 ctrl + c
[1]+ Done /usr/local/mysql/bin/mysqld_safe

[root@test bin]#

실행 안된겁니다. 소유권 문제입니다. chown -R mysql.mysql data 로 소유권을 변경해줍니다. 소유권 변경할때 /usr/local/mysql 폴더에서 해주셔야 합니다. 왜냐? /usr/local/mysql 밑에 data 디렉토리의 권한을 바꾸는것이기 때문에..
이제 # /usr/local/mysql/bin/mysqld_safe & 하면 mysql 이 실행됩니다.
============================================================================================================
RPM 설치
============================================================================================================
MySQL 사이트 => http://www.mysql.com

http://dev.mysql.com/downloads/mysql/4.0.html <== 이곳에서 RPM을 다운받는다.

* Server MySQL-server-4.0.21-0.i386.rpm

* Client programs MySQL-bench-4.0.21-0.i386.rpm

* Benchmark/test suites MySQL-client-4.0.21-0.i386.rpm

* Libraries and header files MySQL-devel-4.0.21-0.i386.rpm

* Dynamic client libraries MySQL-shared-4.0.21-0.i386.rpm

* Embedded server MySQL-embeddes-4.0.21-0.i386.rpm

* Dynamic client libraries MySQL-shared-compat-4.0.21-0.i386.rpm
(including 3.23.x libraries)

다운받은 RPM 소스를 설치하는데 이전버전이나 mysql이 설치되었는지 확인해보자

# rpm -qa | grep MySQL

** 아마 설치된것이 없다면 아무것도 안나올것이며, 설치된 것이 있다면 리스트가 나올것이다.

ex)

[root@localhost src]# rpm -qa | grep MySQL

MySQL-3.23.27-1

MySQL-client-3.23.27-1

MySQL-devel-3.23.27-1

MySQL-shared-3.23.27-1

위 내용처럼 나온다면 이전버전은 지워버리자

# rpm -e MySQL-3.23.27-1

지울때 의존성 때문에 안지워 질 수도 있는데 --nodeps 옵션을 추가하여 무시하고 지우자

# rpm -e --nodeps MySQL-3.23.27-1
.

.

.


모두 지워졌다면 설치를 하자

다운받은 폴더로 이동(자신이 다운받은 곳으로 이동하자)

# cd /root/apm/down

설치

# rpm -Uvh MySQL-server-4.0.21-0.i386.rpm

# rpm -Uvh MySQL-client-4.0.21-0.i386.rpm

# rpm -Uvh MySQL-devel-4.0.21-0.i386.rpm

# rpm -Uvh MySQL-embeddes-4.0.21-0.i386.rpm

# rpm -Uvh MySQL-shared-4.0.21-0.i386.rpm

# rpm -Uvh MySQL-bench-4.0.21-0.i386.rpm

# rpm -Uvh MySQL-shared-compat-4.0.21-0.i386.rpm

MySQL 패키지 설치가 끝났다면 패키지의 정보를 함 봐보자

# rpm -qip MySQL-server-4.0.21-0.i386.rpm
신고

[Tip] RPM 설치/제거

.Tech/Linux

1. RPM의 개요

리눅스 배포판들은 기본적으로 package라는 단위로 구성되어있다. 일반적인 .tar.gz(.tgz)파일보다 RPM패키지는 매우 뛰어난 기능을 가지고 있는 고차원적인 패키징 시스템이다.

1.1 rpm의 다섯가지 mode

설치모드 : rpm -i 또는 rpm -U(업그레이드)

제거모드 : rpm -e

질의모드 : rpm -q

검증모드 : rpm -V 또는 rpm -v

패키지제작모드 : rpm -b

1.2 rpm 패키지 이름 구조

패키지 이름

-

버전

-

릴리즈

.

아키텍처

.

rpm

 

) tcp_wrappers-7.6-10.i386.rpm
     tcp_wrappers :
패키지 이름
     7.6 :
버전
     10 :
릴리즈
     i386 :
아키텍처(intel 플랫폼의미)
    1.3
패키지 설치/업그레이드/제거

1.3 rpm패키지 명령어 형식

설치

 rpm -i [옵션] [패키지 파일 목록]

업그레이드

 rpm -U [옵션] [패키지 파일 목록]

질의

 rpm -q [옵션] [패키지 목록]

삭제

 rpm -e [패키지 이름]
 rpm -e [
패키지 이름-버전]
 rpm -e [
패키지 이름-버전-릴리즈]

검증

 rpm -V [옵션] [패키지 목록]
 rpm -y [
옵션] [패키지 목록]

 

1.4. RPM 설치 / 업그레이드

1) 간단한 설치 명령

shell> rpm -i  proftpd-1.2.1-1kr.i686.rpm
shell>

2) -v 옵션

shell> rpm -i -v apache-1.3.12-2.i386.rpm
apache-1.3.12-2

shell>

3) -h, --hash옵션

shell> rpm -ivh apache-1.3.12-2.i386.rpm
apache        ###############################################
shell>

4) -Uvh

설치옵션에서 -i -v 옵션 하나, 그리고 진행상황을 행서 마크로 보여주는 -h옵션을 묶어 -ivh라는 복합옵션을 사용할 수 있다. 그러나, 많은 사용자들은 -ivh옵션 대신 -U옵션을 사용한다. 업그레이드 옵션 -U로 시스템에 설치된 패키지를 설치할 때는 업그레이드할 패키지가 없으므로 알아서 처음 설치 모드, -i모드로 설치하는 것과 바 없다. 구버전의 패키지가 있는경우 버전의 패키지를 지워주고 삭제와 설치를 동시에 해 주는 것이다.

아래의 예처럼 업그레이드 설치가 가능하며 중복 설치시엔  에러 메시지를 보내준다.

shell> rpm -Uvh apache-1.3.12-2.i386.rpm
apache     ##################################################
shell>

 

shell> rpm -Uvh apache-1.3.12-2.i386.rpm
package apache-1.3.12-2 is already installed
shell>

1.5 RPM 질의

아래와 같은 옵션으로 설치된 RPM패키지에 대한 정보를 알 수 있다.

1) 모든 설치 정보

shell> rpm -q -a 또는 rpm -qa
ElectricFence-2.1-1
setup-2.0.5-1
filesystem-1.3.5-1
basesystem-6.0-4
ldconfig-1.9.5-15

<생략 >

2) 패키지에 대한 질의

shell> rpm -q apache
apache-1.3.12-2
shell>

3) 일반정보 질의 -i

shell> rpm -qi apache
Name        : apache                       Relocations: (not relocateable)
Version     : 1.3.12                            Vendor: Red Hat, Inc.
Release     : 2                             Build Date: Thu 02 Mar 2000 03:37:55AM KST
Install date: Sat 17 Mar 2001 12:25:13 AM KST      Build Host: porky.devel.redhat.com
Group       : System Environment/Daemons    Source RPM: apache-1.3.12-2.src.rpm
Size        : 975071                           License: Freely distributable and usable
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary     : The most widely used Web server on the Internet.
Description :Apache is a powerful, full-featured, efficient and freely-available Web server. Apache is also the most popular Web server on the Internet. Install the apache package if you need a Web server.
shell>

4) 설치파일목록 질의 -

shell> rpm -ql apache
/etc/httpd/conf
/etc/httpd/conf/access.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
<
중 략>
shell>

1.6 RPM 삭제

shell> rpm -e apache
shell>

1.7 RPM 검증

설치한 패키지의 파일이 처음 설치할 때와 검즈을 하는 현재 시점 사이에 어떤 변화가 있었는지 검증 할 수 있다.

         

     

 5

 MD5 체크섬(파일의 내용이 원본과 같은가?

 S

 파일크기

 L

 심볼릭 링크

 T

 최신 갱신일시(MTime)

 D

 장치

 U

 사용자

 G

 그룹

 M

 모드(허가권과 파일 유형)

 

 

신고

[Tip] RPM 찾기

.Tech/Linux
rpm -ivh packages.rpm

rpm패키지를 설치하기

rpm -Uvh packages.rpm

rpm패키지를 업그레이드 하기

rpm -e package

rpm패키지를 지우기

rpm -e package

설치된 package의 버젼을 알아오기

rpm -qi package

설치된 package의 자세한 정보 알아오기

rpm -qf /path/file

/path/file이 어떤 rpm패키지에 포함되어 있는지 확인

rpm -q --requires package

패키지가 필요로 하는 파일혹은 패키지들

rpm -qa --queryformat "%10{SIZE}\t%{NAME}\n" | sort -k1,1n

모든 페키지를 크기로 정렬해서 출력한다.

rpm -qa | grep mplayer

설치한 패키지 중에 mplayer이 있는지 확인

신고