MySQL 5.7.9 CentOS 에 소스 설치 방법 (MySQL)
2017-12-19 18:00 - swindler
1. boost 준비
mysql 5.7.9 버전을 설치하기 위해서는 boost 라는 라이브러리가 필요하다.
wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
tar xvzf boost_1_59_0.tar.gz
압축만 풀어두고, 경로지정만 맞춰서 해 주면 설치된다.
-> 굳이 이렇게 받지 않아도 cmake 옵션에서 주면 알아서 받기도 한다.
2. mysql 컴파일
https://dev.mysql.com/downloads/mysql/ 에서 다운로드 받는다.
보통 Generic Linux (Architecture Independent) 을 받으면 된다.
Boost Header간 include된 버전도 있다.
mysql 압축을 푼 다음에, 다음과 같이 본인에게 맞는 옵션으로 cmake 실행
옵션중에 boost 경로를 지정하는 부분이 있으니, 위에서 압축 푼 폴더로 잘 지정해주면 된다.
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/home/mysql_data \
-DENABLED_LOCAL_INFILE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=../boost_1_59_0 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all
나는 보통 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci 옵션을 준다.
(요즘 utf8mb4를 사용하는 경우가 많다.)
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/home/mysql_data \
-DENABLED_LOCAL_INFILE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=../boost_1_59_0 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_EXTRA_CHARSETS=all
boost 포함버전을 받은 경우에는 다음과 같이 옵션을 변경한다.
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/data/mysql_data \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=boost \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_EXTRA_CHARSETS=all
make 를 그냥 실행하면 속도가 느리다.
-j 옵션을 cpu 코어 갯수만큼 주면 속도가 빨라진다.
make -j `grep processor /proc/cpuinfo | wc -l`
그 다음으로
make install 실행
3. 각종 환경설정
useradd -M mysql
(-M 옵션을 home directory를 생성하지 않는 옵션이다.)
chown -R root:mysql /usr/local/mysql
cd /usr/local/mysql
chmod 700 support-files/mysql.server
cp support-files/mysql.server /etc/rc.d/init.d/mysql
ln -s /etc/rc.d/init.d/mysql /etc/rc.d/rc3.d/S97mysql
(부팅시 자동 실행되게 run level 3에 추가)
cp support-files/mysql.server /usr/bin/
4. /etc/my.cnf 파일을 작성한다. (샘플을 찾아서 적당히...)
5. database install
/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/data/mysql
6. mysql start
mysql.server start
7. root 패스워드 설정
database 생성시 자동으로 암호가 설정되는데, root의 홈디렉토리에 .mysql_secret 이라는 파일에 저장되어 있다.
mysql -u root -p mysql 로 접속하고 해당 비밀번호를 입력한다.
아무 쿼리나 날리면 password를 reset 하라는 메세지가 나타난다.
alter user 'root'@'localhost' IDENTIFIED BY 'wwwwwwww';
flush privileges;
mysql 5.7.9 버전을 설치하기 위해서는 boost 라는 라이브러리가 필요하다.
wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
tar xvzf boost_1_59_0.tar.gz
압축만 풀어두고, 경로지정만 맞춰서 해 주면 설치된다.
-> 굳이 이렇게 받지 않아도 cmake 옵션에서 주면 알아서 받기도 한다.
2. mysql 컴파일
https://dev.mysql.com/downloads/mysql/ 에서 다운로드 받는다.
보통 Generic Linux (Architecture Independent) 을 받으면 된다.
Boost Header간 include된 버전도 있다.
mysql 압축을 푼 다음에, 다음과 같이 본인에게 맞는 옵션으로 cmake 실행
옵션중에 boost 경로를 지정하는 부분이 있으니, 위에서 압축 푼 폴더로 잘 지정해주면 된다.
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/home/mysql_data \
-DENABLED_LOCAL_INFILE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=../boost_1_59_0 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all
나는 보통 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci 옵션을 준다.
(요즘 utf8mb4를 사용하는 경우가 많다.)
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/home/mysql_data \
-DENABLED_LOCAL_INFILE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=../boost_1_59_0 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_EXTRA_CHARSETS=all
boost 포함버전을 받은 경우에는 다음과 같이 옵션을 변경한다.
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/data/mysql_data \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=boost \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_EXTRA_CHARSETS=all
make 를 그냥 실행하면 속도가 느리다.
-j 옵션을 cpu 코어 갯수만큼 주면 속도가 빨라진다.
make -j `grep processor /proc/cpuinfo | wc -l`
그 다음으로
make install 실행
3. 각종 환경설정
useradd -M mysql
(-M 옵션을 home directory를 생성하지 않는 옵션이다.)
chown -R root:mysql /usr/local/mysql
cd /usr/local/mysql
chmod 700 support-files/mysql.server
cp support-files/mysql.server /etc/rc.d/init.d/mysql
ln -s /etc/rc.d/init.d/mysql /etc/rc.d/rc3.d/S97mysql
(부팅시 자동 실행되게 run level 3에 추가)
cp support-files/mysql.server /usr/bin/
4. /etc/my.cnf 파일을 작성한다. (샘플을 찾아서 적당히...)
5. database install
/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/data/mysql
6. mysql start
mysql.server start
7. root 패스워드 설정
database 생성시 자동으로 암호가 설정되는데, root의 홈디렉토리에 .mysql_secret 이라는 파일에 저장되어 있다.
mysql -u root -p mysql 로 접속하고 해당 비밀번호를 입력한다.
아무 쿼리나 날리면 password를 reset 하라는 메세지가 나타난다.
alter user 'root'@'localhost' IDENTIFIED BY 'wwwwwwww';
flush privileges;
swindler - 2018-03-13 18:49
cmake 실행시에 pthread 관련에서 에러가 나면 '/usr/include/pthread.h' 파일을 열어 아무곳에 /* Linuxthreads */ 를 추가해주면 됨