본문 바로가기

.주제별/SQL,DB

[스크랩] MySQL 설치하기

출처 : 쌀콩닷컴 (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