[MySQL] 리눅스 MySQL 설치
웹 개발자로 일해가면서 db를 설치할 일이 얼마나 자주 있을까?
이참에 문서로만 기록해놨던 설치방법을 블로그에다가 옮겨본다.
OS : CentOS 6.5
DBMS : MySQL 5.1
1. MySQL 다운로드 : http://dev.mysql.com/downloads/mysql/5.1.html#downloads
* 필자는 SourceCode를 다운받아 컴파일 하여 설치할것이므로
Generic Linux (Architecture Independent), Compressed TAR Archive 를 다운받음 (mysql-5.1.73.tar.gz)
2. 다운받은 파일을 서버에 업로드 후 해당 파일을 /usr/local/src 로 이동.
root@web]# mv ./mysql-5.1.73.tar.gz /usr/local/src
3. 압축 해제
root@web]# cd /usr/local/src
root@web]# tar zxvf ./mysql-5.1.73.tar.gz
4. mysql 계정생성
root@web]# groupadd mysql
root@web]# useradd -g mysql -s /bin/bash -d /home/mysql mysql
5. 컴파일, make, make install
root@web]# cd /usr/local/src/mysql-5.1.73
root@web]# ./configure --prefix=/usr/local/mysql
--with-charset=utf8 --with-extra-charsets=all --with-mysqld-user=mysql
--with-innodb
* 컴파일 옵션 설명
--prefix=/usr/local/mysql (install 위치)
--with-charset=utf8 (기본 캐릭터셋)
--with-extra-charsets=all
--with-mysqld-user=mysql (유저명)
--with-innodb(DB 종류 : 잘 모를땐 트랜잭션 처리를 위한 innodb 추천)
* 컴파일중 에러가 발생하면 해당 라이브러리가 없는경우가 많음. 필요한 라이브러리 목록은 다음과 같음
cnurses-devel
libtermcap-devel
gcc-c++
* 라이브러리 설치 확인
root@web]# yum list gcc-c++
* 라이브러리 설치
root@web]# yum -y install gcc-c++
컴파일이 오류없이 정상적으로 되었다면 make, make install 입력.
root@web]# make
root@web]# make install
6. DB 초기설정
root@web]# /usr/local/mysql/bin/mysql_install_db --user=mysql
root@web]# vi /etc/profile
* 제일 하단에 다음내용 추가 : export PATH=$PATH:/usr/local/mysql/bin
root@web]# cp /usr/local/mysql/share/mysql/my-medium.cnf
/etc/my.cnf
root@web]# chown -R mysql:mysql /usr/local/mysql/data
7. 서버 부팅시 mysql 자동실행
root@web]# cp /usr/local/mysql/share/mysql/mysql.server
/etc/rc.d/init.d/
root@web]# cp /usr/local/mysql/share/mysql/mysql.server
/etc/rc.d/init.d/mysql
root@web]# chkconfig --level 3 mysql on
root@web]# chkconfig --level 5 mysql on
root@web]# chmod 755 /usr/local/mysql
8. DB 시작
root@web]# /etc/rc.d/init.d/mysql start
또는
root@web]# service mysql start
* 종료는 mysql stop
9. mysql root 패스워드 변경
root@web]# mysql -p mysql
Enter password: 그냥 엔터
> update user set password=password('패스워드') where user='root';
> flush privileges;
> quit
끝.
TIP) mysql 은 실행중인데 외부에서 접속이 안된다면 리눅스 방화벽을 의심해 볼 필요가 있다.
iptable 이 실행중이라면 mysql 포트를 허용해 주어야 한다.
root@web]# vi /etc/sysconfig/iptables
다음내용 추가
-A RH-Firewall-1-INPUT –m state –state NEW –m
tcp –p tcp –-dport 3306 –j ACCEPT
-A RH-Firewall-1-INPUT –m state –state NEW –m
udp –p udp –-dport 3306 –j ACCEPT
iptable 재시작
root@web]# service iptables restart