Mysql설치(5.7.10)
① OS버젼 확인
– /etc/redhat-release 또는 /etc/issue에서 OS버전을 확인한다.
② cmake, ncures-devel설치
# yum -y install cmake ncurses-devel |
③ Mysql설치
– 계정추가
# groupadd -g 400 mysql # useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql |
– 설치
# cd /usr/local/src # wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.10.tar.gz # tar xvfz mysql-5.7.10.tar.gz # cd mysql-5.7.10 # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DMYSQL_TCP_PORT=3306 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/include/boost # make # make install ※ 언어셋을 euckr로 설치를 원할 경우, -DDEFAULT_CHARSET=euckr -DDEFAULT_COLLATION=euckr_korean_ci로 변경해준다. |
※ 위 내용처럼 진행하였을때 make도중 41퍼센트에서 에러가 발생하여 진행이 안 되는 경우가 있다. 이는 메모리1G 가상서버에서 발생하였던 에러이며 4G서버에서는 발생하지 않았다. 메모리부족으로 나타나는 현상으로 추측되며, 스왑메모리를 추가해줌으로써 문제를 해결하였다.
# dd if=/dev/zero of=/var/swapfile bs=1k count=3072000 # mkswap /var/swapfile # swapon /var/swapfile # swapon -s |
-
초기 데이터베이스 구성 및 권한설정
# /usr/local/src/mysql-5.7.10/client/mysql_install_db –user=mysql –datadir=/usr/local/mysql/data –basedir=/usr/local/mysql # chown -R mysql.mysql /usr/local/mysql # chmod 711 /usr/local/mysql # chmod 700 /usr/local/mysql/data # chmod 751 /usr/local/mysql/bin # chmod 750 /usr/local/mysql/bin/* # chmod 755 /usr/local/mysql/bin/mysql # chmod 755 /usr/local/mysql/bin/mysqldump |
④ boost설치
# cd /usr/local/include/boost/boost_1_59_0 # ./bootstrap.sh # ./b2 install |
⑤ 자동실행설정 및 기타파일 적용
# cp -arp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf # cp -arp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # chmod 700 /etc/init.d/mysqld |
# vi /etc/my.cnf – 방금 복사한 설정파일을 열어 아래 세줄을 주석해제 후 다음과 같이 설정해준다. basedir = /usr/local/mysql datadir = /usr/local/mysql/data port = 3306 |
# chkconfig –add mysqld # chkconfig –level 3 mysqld on |
# vi /root/.bash_profile – 다음과 같이 기본 환경변수에 mysql경로를 지정해준다. PATH=$PATH:$HOME/bin:/usr/local/mysql/bin: # source /root/.bash_profile |
⑤ 방화벽추가
– iptables 사용시
# vi /etc/sysconfig/iptables -A INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT 추가 # systemctl restart iptables |
– firewalld 사용시
# firewall-cmd –zone=public –add-port=3306/tcp –permanent # firewall-cmd –reload 또는 # systemctl restart firewalld으로 재구동 # vi /etc/firewalld/zones/public.xml ← 이곳에서 포트추가한 것이 확인가능하다. |
⑥ 설치확인
– 데몬구동확인
# /etc/init.d/mysqld start # netstat -nltp |
– 버전확인
# /usr/local/mysql/bin/mysql -V |
⑦ 정상구동 확인
※ Mysql 5.7 버전에서는 이전버전과는 달리 최초 접속시 패스워드가 임의로 할당되어 바로 root로 접속할 수 없다.
※ 가장 간단한 해결방법으로 아래 경로에 임의로 설정된 패스워드로 접속하는 방법이 있다.
# vi /root/.mysql_secret |
※ 다른 방법으로는 구동중인 mysql을 종료하고 safe모드로 구동한 후 다시 접근하면 패스워드 없이 접근이 가능하다. 이후 패스워드를 설정해주면 된다.
# /etc/init.d/mysqld stop # /usr/local/mysql/bin/mysqld_safe –skip-grant-tables & # mysql |
mysql> use mysql; Database changed mysql> update user set authentication_string=password(‘P@ssw0rd’) where user=’root’; Query OK, 0 rows affected (0.00 sec) mysql> flush priviliges; Query OK, 0 rows affected (0.00 sec) |