- 기본 준비
yum -y install wget gcc* make cmake libtool* openssl* pcre* ncurses ncurses-devel curses-devel libxml* bzip2 bzip2-libs bzip2-devel curl-devel curl expat-devel expat gdbm gdbm-devel libjpeg* libpng* libtiff* freetype* freetype imap imap-devel krb5-devel libmcrypt* libmhash-devel mhash* flex icu libicu libicu-devel libc libcu-devel libc-client-devel zlib-devel zlib libtiff-devel libtiff gd* pcre-devel pcre gdbm* pam-devel patch libcurl libcurl-devel libvpx libvpx-devel libXpm libXpm-devel t1lib t1lib-devel gmp-devel openldap-devel readline-devel libedit-devel libtidy libtidy-devel libxslt libxslt-devel db4-devel ibc-client uw-imap-devel uw-imap uw-imap-static libc-client-2007f wget vim
: 필요없는 라이브러리도 있으니 용량 부족시 확인 후 설치
- Group & User 생성
groupadd -g 400 mysql
useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql
- MySQL 4.0.30 준비
파일 다운로드 후 압축 해제
cd /usr/local/src/APM_Setup
wget https://dafaru.com/mydata/linux/lmp-4/mysql-4.0.30.tar.gz
wget https://github.com/ingktds/mysql-4.0.30/blob/master/mysql-4.0.30.tar.gz
tar zxvf mysql-4.0.30.tar.gz
cd mysql-4.0.30
- 컴파일
./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/usr/local/mysql/data --with-mysqld-user=mysql --with-openssl
./configure --prefix=/usr/local/mysql --with-mysqld-user="mysql" --localstatedir=/usr/local/mysql/data --sysconfdir=/etc --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --without-debug --enable-shared --enable-assembler --with-readline --enable-thread-safe-client --with-plugins=innobase --with-extra-charsets=all --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
- make && make install
make -j 4 && make install
: -j 옵션은 top -> 1로 확인 후 서버에 맞춰 변경하여 사용
- 설정, 실행파일 생성
cp -arp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
cp -arp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
- 초기 DB 생성
/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
- MySQL sock파일 디렉토리생성
mkdir /usr/local/mysql/tmp/
- data 디렉터리 소유권 변경
chown -R mysql.mysql /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
chmod 711 /usr/local/mysql
chmod 700 -R /usr/local/mysql/data
chmod 751 /usr/local/mysql/bin
chmod 755 /usr/local/mysql/bin/mysql
chmod 750 /usr/local/mysql/bin/*
chmod 755 /usr/local/mysql/bin/mysqldump
- 환경변수 추가
vi /etc/profile
: 문서 맨 하단에 아래 내용 추가
===
export MySQL_HOME=/usr/local/mysql
export PATH="$PATH:/usr/local/mysql/bin"
===
source /etc/profile
- root 비밀번호 설정
mysql_secure_installation
===
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] Y
New password: root 패스워드 입력
Re-enter new password: root 패스워드 입력
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
===
위에꺼 안될때
/usr/local/mysql/bin/mysqladmin -u root -p password '새로운비밀번호'
- gcc 에러 발생 시
mysql.cc: In function 'void print_table_data(MYSQL_RES*)':
mysql.cc:1650: error: expected primary-expression before '?' token
mysql.cc:1650: error: expected ':' before ')' token
mysql.cc:1650: error: expected primary-expression before ')' token
mysql.cc:1652: error: expected primary-expression before '?' token
mysql.cc:1652: error: expected ':' before ')' token
mysql.cc:1652: error: expected primary-expression before ')' token
mysql.cc:1666: error: expected primary-expression before '?' token
mysql.cc:1666: error: expected ':' before ')' token
mysql.cc:1666: error: expected primary-expression before ')' token
make[1]: *** [mysql.o] Error 1
make[1]: Leaving directory `/usr/local/src/APM_Setup/mysql-4.0.27/client'
make: *** [install-recursive] Error 1
: 위 에러는 gcc 버전이 높아 발생하는 에러로 아래와 같이 해결함
yum install compat-*
cd /usr/bin
mv gcc gcc-backup
mv g++ g++-backup
ln -s gcc34 gcc
ln -s g++34 g++
- LinuxThreads 에러 발생 시
checking “LinuxThreads“… “Not found“
configure: error: This is a linux system and Linuxthreads was not
found. On linux Linuxthreads should be used. Please install Linuxthreads
(or a new glibc) and try again. See the Installation chapter in the
Reference Manual for more information.
: 위 에러는 glibc를 찾지 못하여 발생하는 에러로 아래와 같이 해결함
vi /usr/include/pthread.h
: 문서 맨 아래에 /* Linuxthreads */를 추가
===
__END_DECLS
#endif /* pthread.h */
/* Linuxthreads */
===
※ 재시작 및 접속 확인 시 완료 ※
'DB > Mysql' 카테고리의 다른 글
MySQL 3.23 소스설치 (CentOS 6) (0) | 2021.09.30 |
---|---|
my.cnf 추천 (0) | 2020.12.02 |
mysql 리플리케이션 무중단 (0) | 2020.11.04 |
mysql8 마이그레이션 (0) | 2020.10.30 |
APM 설치(2/4) - MySQL(5.6.29) (0) | 2020.10.30 |