## MySQL 설치전 선행 작업
cd /usr/local/src/
yum install -y wget vim epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum update -y
## CentOS 7 Default 환경변수설정
echo " " >> /etc/profile
echo "####default PATH#####" >> /etc/profile
echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:" >> /etc/profile
echo "#####################" >> /etc/profile
## 소스설치를 위한 패키지 환경 설치
yum install -y libdb-devel enchant-devel libxslt libxslt-devel net-snmp-devel readline-devel readline aspell-devel unixODBC unixODBC-devel libicu-devel icu libicu libc-client libc-client-devel libc-client-2007f freetype-devel freetype* freetype libXpm libXpm-devel libpng-devel libpng* libvpx-devel libvpx libcurl libcurl-devel curl* curl-devel curl tcp_wrappers-devel libzip environment-modules uw-imap-utils uw-imap-devel uw-imap uw-imap-static pam-devel libldb-devel openldap-devel cyrus-sasl-devel bzip2-devel bzip2 bzip2-libs ncurses-devel ncurses mysql-devel libjpeg-devel libjpeg* libjpeg-devel openssl-devel openssl* openssl-libs libxml* libxml2 libxml2-devel libmcrypt libmcrypt-devel libmcrypt* mcrypt mhash* mhash mhash-devel libmhash libmhash-devel expat-devel expat expat* gmp* gmp gmp-devel krb5* krb5-devel db4 db4-devel wget make cmake libtool* pcre* gdbm* gdbm gdbm-devel libtiff* libtiff libtiff-devel flex zlib* zlib-devel zlib gd* gd gd-devel patch t1lib t1lib-devel readline libedit-devel libtidy libtidy-devel gcc* gcc gcc-c++ libtermcap-devel dialog sqlite-devel oniguruma oniguruma-devel libzip5 mod_ssl postgresql-devel lcov systemtap-sdt-devel mod_ldap elfutils-devel libwebp-devel libwebp git gzip libnghttp2-devel valgrind* mod_proxy* editline editline-devel patchelf systemd-devel ImageMagick-devel libzstd-devel libffi libffi-devel libraqm-devel libraqm libsodium libsodium-devel
## CentOS 6 이하 관련 라이브러리 설정
mkdir /usr/kerberos
ln -s /usr/lib64 /usr/kerberos/lib
## PHP imap 관련 모듈 64비트 32비트 라이브러리 호환설정
ln -s /usr/lib64/libc-client.a /usr/lib/libc-client.a
unlink /usr/include/db.h
ln -s /usr/include/libdb4/db.h /usr/include/db.h
ln -s /usr/include/sqlext.h /usr/local/include/sqlext.h
ln -s /usr/lib64/libgdbm_compat.so /usr/local/lib64/libdbm.so
## openldap 호환
\cp -arpf /usr/lib64/libldap* /usr/lib/
ln -sf /usr/lib64/libm.so /usr/lib/libm.so
ln -sf /usr/lib64/libssl.so /usr/lib/libssl.so
## libXpm 모듈 32비트 호환
ln -s /usr/lib64/libXpm.so /usr/lib/
ln -s /usr/lib64/libXpm.so.4 /usr/lib/
ln -s /usr/lib64/libXpm.so.4.11.0 /usr/lib/
## PHP 이미지모듈 64비트 32비트 라이브러리 호환설정
ln -s /usr/lib64/libjpeg.so /usr/lib
ln -s /usr/lib64/libpng.so /usr/lib
## MySQL 계정 생성
groupadd -g 400 mysql
useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql
## MySQL 다운로드 및 배포
mkdir /usr/local/src/APM_Setup
cd /usr/local/src/APM_Setup
wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.1/mysql-5.1.73.tar.gz
또는
wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-5.1/mysql-5.1.73.tar.gz
tar zxvf mysql-5.1.73.tar.gz
cd /usr/local/src/APM_Setup/mysql-5.1.73
## MySQL 컴파일 설정 및 설치
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--with-mysqld-user=mysql \
--with-charset=utf8 \
--sysconfdir=/etc \
--with-extra-charsets=all \
--enable-shared \
--with-plugins=max,max-no-ndb,mandatory \
--enable-thread-safe-client \
--enable-assembler \
--with-tcp-port=3306 \
--with-readline \
--with-mysqld-ldflags=-all-static \
--with-client-ldflags=-all-static \
--without-debug \
--with-plugins=innobase \
--enable-local-infile \
--enable-profiling \
--enable-local-infile \
--enable-largefile \
--with-big-tables \
--with-pic \
--with-libwrap \
--with-comment \
--with-gnu-ld \
--with-pthread \
--with-unix-socket-path=/tmp/mysql.sock
make -j && make install
## MySQL 설정파일 생성 및 시작 스크립트 생성
\mv -f /etc/my.cnf /etc/my.cnf_source_before
\cp -arpf ./support-files/my-innodb-heavy-4G.cnf /etc/my.cnf
\cp -arpf ./support-files/mysql.server /etc/init.d/mysqld
sed -i 's/skip-locking/skip-external-locking/g' /etc/my.cnf
sed -i 's/#external-locking/skip-external-locking/g' /etc/my.cnf
## MySQL 기본 엔진 변경
# default-storage-engine = MYISAM
-> 주석처리
default-storage-engine = InnoDB
-> 추가
## DB 디렉토리 생성 및 퍼미션 소유 설정
mkdir -p /usr/local/mysql/logs
chown -R mysql:mysql /usr/local/mysql
chmod 700 /etc/init.d/mysqld
chmod 711 /usr/local/mysql
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
ln -s /usr/local/mysql/lib/ /usr/local/mysql/lib64
## DB 초기화
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
## MySQL 비밀번호 설정
/etc/init.d/mysqld restart
/usr/local/mysql/bin/mysqladmin -u root password "설정할 비밀번호"
## MySQL logrotate 설정
mkdir /root/bin
\cp -arpf ./support-files/mysql-log-rotate /root/bin/
echo " " >> /etc/crontab
echo "0 0 * * * root /usr/sbin/logrotate -f /root/bin/mysql-log-rotate" >> /etc/crontab
## MySQL 환경변수 설정
아래 설정은 Apache, MySQL, PHP 부분이 모두 포함되어있습니다.
echo " " >> /etc/profile
echo "APACHE_HOME=/usr/local/apache" >> /etc/profile
echo "MySQL_HOME=/usr/local/mysql" >> /etc/profile
echo "PHP_HOME=/usr/local/php" >> /etc/profile
echo " " >> /etc/profile
echo "export PATH="\$"APACHE_HOME/bin:"\$"MySQL_HOME/bin:"\$"PHP_HOME/bin:"\$"PHP_HOME/sbin"\$"{PATH:+:"\$"{PATH}}" >> /etc/profile
source /etc/profile
만약 DB만 운영하실것이라면 위의 명령어가 아닌 아래 명령어를 입력해주세요.
echo " " >> /etc/profile
echo "MySQL_HOME=/usr/local/mysql" >> /etc/profile
echo "export PATH="\$"MySQL_HOME/bin:"\$"{PATH:+:"\$"{PATH}}" >> /etc/profile
echo " " >> /etc/profile
source /etc/profile
'DB > MySQL' 카테고리의 다른 글
CentOS 7 MySQL 5.7.41 소스 컴파일 설치 (0) | 2023.03.11 |
---|---|
CentOS 7 MySQL 5.6.51 소스 컴파일 설치 (0) | 2023.03.11 |
CentOS 7 MySQL 5.5.62 소스 컴파일 설치 (0) | 2023.03.11 |
CentOS 7 MySQL 5.0.96 소스 컴파일 설치 (0) | 2023.03.11 |
MySQL 버전 EoS 정리 (0) | 2023.03.11 |
댓글