2014년 8월 8일 금요일

[APM 설치하기 시리즈 1편 ] CentOS에서 Mysql 설치하기


CentOS에서 Mysql 5.7버전 설치하기


  • Mysql이란?
표준 데이터베이스 질의 언어인 SQL(Structured Query Language)을 사용하는 개방 소스의 관계형 데이터베이스 관리 시스템(RDBMS). 매우 빠르고, 유연하며, 사용하기 쉬운 특징이 있다. 다중 사용자, 다중 쓰레드를 지원하고, C, C++, Eiffel, 자바, 펄, PHP, Python 스크립트 등을 위한 응용 프로그램 인터페이스(API)를 제공한다. 유닉스리눅스, 윈도 운영 체제 등에서 사용할 수 있다. LAMP, 즉 리눅스 운영 체제와 Apache 서버 프로그램, MySQL, PHP 스크립트 언어 구성은 상호 연동이 잘되면서도 오픈 소스로 개발되는 무료 프로그램이어서 홈 페이지나 쇼핑몰 등 일반적인 웹 개발에 널리 이용되고 있다. mySQL은 오픈 소스 라이선스를 따르기는 하나 상업적으로 사용할 때에는 상업용 라이선스를 구입해야 한다.


[네이버 지식백과] mySQL (IT용어사전, 한국정보통신기술협회)


  • Mysql 준비하기
- Mysql을 다운 받아야 합니다. 현재는 오라클에서 Mysql을 인수했기 때문에 홈페이지에서
  받으려면 오라클 계정이 있어야 해요.

- Kaist ftp등과 같은 미러사이트를 이용해서 받아 주세요.


- URL을 잘 봐주시고 본인의 환경에 맞는 Mysql을 설치해주세요.

- 저는 mysql-5.7.3-m13-linux-glibc2.5-x86_64.tar.gz를 다운 받았어요.

- 이제 wget을 이용해서 다운 받아 주세요.

#cd /usr/local/src 

#wget http://ftp.kaist.ac.kr/mysql/Downloads/MySQL-5.7/mysql-5.7.3-m13-linux-glibc2.5-x86_64.tar.gz

- 그리고 중요한 것인데 CentOS 설치하는  방법마다 라이브러리가 설치되냐 안 되냐 하는데   혹시 설치를 하셨더라도 다시 한 번 해주세요. 설치 할 파일이 길어서 작은 글씨로 썼습니다. (*맨 앞에 # 지우고 윈도우 메모장에 붙여넣었다가 사용 해주세요.)
# yum -y install ORBit2 PyXML a2ps acpid alsa-lib amtu aspell at atk audiofile audit-libs-python autoconf autofs automake avahi avahi-glib bc bind bind-chroot bind-libs bind-utils cairo ccid compat-libstdc++-33 conman cpp cpuspeed crash createrepo crypto-utils cryptsetup-luks cups-libs cvs cyrus-sasl-md5 cyrus-sasl-plain db4-devel dbus-python device-mapper-multipath dhcp dhcp-devel dialog dmraid dos2unix dosfstools dump e2fsprogs-devel ed eject elfutils elfutils-libs enscript expat-devel expect expect-devel expectk fetchmail file finger flex fontconfig fontconfig-devel foomatic freetype freetype-devel ftp gcc gcc-c++ gd gd-devel gd-progs gdb gdbm-devel gettext gfs2-utils glib2-devel glibc-devel glibc-headers gmp-devel gnutls gpm gtk2 hal hdparm hesiod hicolor-icon-theme imake iptraf iptstate ipvsadm irqbalance jwhois kernel-devel kernel-headers keyutils-libs-devel kpartx krb5-devel krb5-workstation ksh lcms lftp libICE libSM libX11 libX11-devel libXau libXau- devel libXcursor libXdmcp libXdmcp-devel libXext libXfixes libXft libXi libXinerama libXpm libXpm-devel libXrandr libXrender libXt libXxf86vm libaio libaio-devel libart_lgpl libbonobo libc-client libcurl-devel libdaemon libevent libfontenc libgomp libgssglue libhugetlbfs libhugetlbfs-devel libidn-devel libjpeg libjpeg-devel libmng libnl libnl-devel libpcap libpng libpng-devel libselinux-devel libselinux-python libsepol-devel libsmi libstdc++-devel libsysfs libtiff libtool libtool-ltdl libwvstreams libxml2-devel libxml2-python libxslt libxslt-python lksctp-tools logwatch lrzsz lsof m2crypto mailcap mailx make man man-pages man-pages-ko mc mcstrans mdadm memtest86+ mesa-libGL mesa-libGL-devel mgetty microcode_ctl mkbootdisk mlocate mrtg mt-st mtools mtr mutt nc ncurses-devel net-snmp-libs netpbm nfs-utils nfs-utils-lib nmap nscd nss_db ntp ntsysv numactl oddjob openssh-clients openssl-devel pam-devel pam_krb5 pam_passwdqc pam_pkcs11 pango parted parted- devel patch pax pciutils pcsc-lite perl perl-Archive-Tar perl-BSD-Resource perl-Compress-Zlib perl-DBI perl-Digest-HMAC perl-Digest-SHA1 perl-HTML-Parser perl-HTML-Tagset perl-IO-Socket-INET6 perl-IO-Socket-SSL perl-IO-Zlib perl-Net-IP perl-Net- SSLeay perl-Newt perl-Socket6 perl-String-CRC32 perl-URI perl-libwww-perl pkgconfig pm-utils postgresql-libs prelink procmail psacct psutils pulseaudio-esound-compat pyOpenSSL pykickstart pyorbit pyparted python-pyblock pyxf86config quota rdate rdist readahead rmt rpcbind rpm-build rsh rsync rusers rwho samba samba-client samba-common samba-swat sendmail sendmail-cf setools setserial setuptool shared-mime-info sip sos spamassassin squashfs-tools strace stunnel symlinks sysfsutils syslinux sysstat system-config-date system-config-firewall talk tcl tcp_wrappers tcpdump tcsh telnet telnet-server time tk tmpwatch traceroute tree ttmkfdir unix2dos unixODBC unzip usbutils usermode vconfig vim-common vim-enhanced vsftpd wget wireless-tools words xfsprogs xfsprogs-devel xinetd xorg-x11-proto-devel yp-tools ypbind ypserv zip zlib-devel GConf2 ImageMagick ImageMagick-perl avahi-libs bwidget cloog-ppl crda cryptsetup-luks-libs cups db4-cxx deltarpm desktop-file-utils device-mapper-multipath-libs dmidecode dmraid-events docbook-dtds flac foomatic-db foomatic-db-filesystem foomatic-db-ppds ghostscript ghostscript-fonts gnome-doc-utils-stylesheets gnome-python2 gnome-python2-canvas gnome-user-docs gnome-vfs2 gpm-libs groff-perl gstreamer gstreamer-tools hal-info hal-libs html2ps hunspell iw jasper-libs kpathsea lcms-libs libIDL libX11-common libXcomposite libXdamage libXdamage-devel libXext-devel libXfixes-devel libXfont libXres libXtst libXxf86vm-devel libasyncns libcanberra libcanberra-gtk2 libcom_err-devel libcroco libdrm-devel libedit libglade2 libgnomecanvas libgsf libnetfilter_conntrack libnfnetlink libnotify libogg libpaper librsvg2 libsampl erate libsndfile libtalloc libtasn1 libtdb libthai libtirpc libusb1 libvorbis libwmf-lite libwnck libxcb libxcb-devel lm_sensors-libs mesa-dri-drivers mozilla-filesystem mpfr mrtg-libs netpbm-progs notification-daemon ntpdate openjpeg-libs pcsc-lite-libs perl-Compress-Raw-Zlib perl-Crypt-OpenSSL-Bignum perl-Crypt-OpenSSL-RSA perl-Crypt-OpenSSL-Random perl-Date-Manip perl-Digest-SHA perl-Encode-Detect perl-ExtUtils-MakeMaker perl-ExtUtils-ParseXS perl-IO-Compress-Base perl-IO-Compress-Zlib perl-Mail-DKIM perl-MailTools perl-Module-Pluggable perl-Net-DNS perl-Net-LibIDN perl-NetAddr-IP perl-Package-Constants perl-Pod-Escapes perl-Pod-Simple perl-SNMP_Session perl-Test-Harness perl-Time-HiRes perl-TimeDate perl-YAML-Syck perl-devel perl-libs perl-version pixman poppler poppler-data poppler-utils portreserve ppl psutils-perl pulseaudio pulseaudio-libs pycairo pygobject2 pygtk2 pygtk2-libglade python-decorator python-deltarpm python-slip python-slip-dbus rarian rarian-compat rtkit samba-winbind-clients setools-console setools-gui setools-libs setools-libs-tcl sgml-common sgpio sound-theme-freedesktop speex startup-notification system-config-date-docs system-config-firewall-tui tex-preview texinfo texinfo-tex texlive texlive- dvips texlive-latex texlive-texmf texlive-texmf-dvips texlive-texmf-errata texlive-texmf-errata-dvips texlive-texmf-errata-fonts texlive-texmf-errata-latex texlive-texmf-fonts texlive-texmf-latex texlive-utils tokyocabinet urlview urw-fonts usermode-gtk xcb-util xml-common xorg-x11-font-utils xulrunner xz xz-lzma-compat yelp lksctp-tools-devel apr-util apr-util-devel libtool-ltdl-devel libmcrypt libmcrypt-devel gmp mhash mhash-devel gdbm zlib curl g++ openssl bzip2-devel libc-client-devel bison system-config-securitylevel
여기까지 하면 mysql 설치 준비가 끝난거에요.

  • 압축해제
#tar zxvf mysql-5.7.3-m13-linux-glibc2.5-x86_64.tar.gz
  • 설치하기
#cd mysql-5.7.3-m13-linux-glibc2.5-x86_64.tar.gz

- 설치하기에 앞서 INTSALL-BINARY를 봐주세요.

# vi INTALL-BINARY
 To install and use a MySQL binary distribution, the basic command
   sequence looks like this: 
shell> groupadd mysql
shell> useradd -r -g mysql mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

- 예전에는 cmake를 설치한 후 cmake를 이용해서 설치해야 했지만 5.6 후반 버전부터는 설치 방법이 바뀌었어요.

  • INSTALL-BINARY를 보고 따라 설치하기
#groupadd mysql
#useradd -r -g mysql mysql
#cd /usr/local
#tar zxvf /usr/local/src/mysql-5.7.3-m13-linux-glibc2.5-x86_64.tar.gz

※ 다른 방법으로는 cp /usr/local/src/mysql-5.7.3-m13-linux-glibc2.5-x86_64 도 있어요.이유는 우리는 아까 압축을 풀었기 때문이지요.

#ln -s mysql-5.7.3-m13-linux-glibc2.5-x86_64 mysql
#cd mysql
#chown -R mysql .
#chgrp -R mysql .
#scripts/mysql_install_db --user=mysql
#chown -R root .
#chown -R mysql data
#bin/mysqld_safe --user=mysql &
이러면 일단은 mysql이 실행이 돼요.

  • 설치 후 해야 할 일
- 실행 경로를 수정해야 해요.

#vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
PATH 부분을 변경해주세요.

- 수정한 내용 적용하기

#source ~/.bash_profile

- 권한 변경하기

#chown -R mysql.mysql /usr/local/mysql

- 데몬 만들기

#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

- my.cnf 파일 복사하기

#cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

- my.cnf 파일 편집하기

#vi /etc/my.cnf
흰색으로 된 부분을 입력해주세요.

- mysqld 퍼미션 변경하기

#chmod 755 /etc/init.d/mysqld

- 방화벽에 3306 포트 추가하기

- 데몬에 mysql 등록하기

#chkconfig --add mysqld
#chkconfig --list | grep mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
3번과 5번이 on인지 확인 해주세요.

- mysql 서비스 시작 및 mysql 시작

#/etc/init.d/mysqld start
#mysql
위 화면이 나온다면 mysql은 설치가 완료 된 것이에요.

- mysql에 특정 로그인 id와 비밀번호를 부여하는 방법이에요. 보안을 위해서 나중에 제로보드 설치를 위해서 이걸 사용해야죠.

#mysqladmin -u '사용자ID' password '비밀번호'

-이렇게 하면 앞으로 mysql에 로그인 할 때는 이렇게 해야 해요.

#mysql -u '사용자ID' -p  // 엔터 후 비밀번호 입력

여기까지 mysql 설치에 관한 포스팅이었습니다. 다음은 Apache를 설치해볼게요.

댓글 없음:

댓글 쓰기