1) CMake
2) GNU make 3.75 이상
3) GCC 7.1 이상
4) C++ 또는 C99 컴파일러
5) SSL library : libssl-dev 로 다운
6) Boost C++ libraries : libboost-all-dev 로 다운
7) ncurses library : apt-get install libncurses5-dev libncursesw5-dev 로 다운
8) Perl
앞서 아파치를 설치할 때 설치한 패키지들을 제외하고 cmake
, libssl-dev
, libboost-all-dev
, libncurses5-dev libncursesw5-dev
만 진행했다.
$ apt-get update
$ apt-get install cmake
$ apt-get install libssl-dev
$ apt-get install libboost-all-dev
$ apt-get install libncurses5-dev libncursesw5-dev
💊 설치 여부 확인 방법
$ dpkg -l | grep [이름]
최신 버전 확인
https://dev.mysql.com/downloads/mysql/
$ cd /usr/local
$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.28.tar.gz
$ tar xvfz mysql-8.0.28.tar.gz
💊 make에서 너무 오랜 시간이 걸렸다..
메모리 오류도 엄청 나서 설치 4시간 이상, 메모리 오류 해결에만 1시간 이상이 걸렸다,,
$ cd mysql-8.0.25
$ rm -f CMakeCache.txt
$ mkdir dir_mysql(원하는 이름으로)
$ cd dir_mysql
$ cmake \
.. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/mysql/boost
$ make
$ make test
$ make install
make 과정중 이러한 오류가 나타났다.
블로그들과 구글 검색 (collection2: fatal error: ld termitated with signal 9[죽었음])을 해보면 메모리 오류여서 용량을 늘려야 한다고 한다.
https://velog.io/@mooh2jj/%EC%9A%B0%EB%B6%84%ED%88%AC-APM-%EC%86%8C%EC%8A%A4%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0#mysql-%EC%84%A4%EC%B9%98
처음에는 이 블로그의 주소를 참조해
#1, create an empty file
dd if=/dev/zero of=/media/swapfile.img bs=1024 count=1M
2, generate a file exchange system
mkswap /media/swapfile.img
3, set the boot
vi /etc/fstab
/media/swapfile.img swap swap sw 0 0
4, activate
swapon /media/swapfile.img
5. Is the verification successful?
[root@izwz956snfyrvah6yq8sa4z ~]# cat /proc/swaps
Filename Type Size Used Priority
/media/swapfile.img file 1048572 0 -2
[root@izwz956snfyrvah6yq8sa4z ~]# grep 'Swap' /proc/meminfo
SwapCached: 0 kB
SwapTotal: 1048572 kB
SwapFree: 1048572 kB
오류를 해결해보고 다시 make가 진행됐다.
이렇게 해결해 보고 다시 make를 진행했지만 얼마 안가서 또 같은 메모리 오류가 나타났다.
다른 블로그에서 swap file 용량을 늘리는 것으로 해결한 것을 보고 swap file 용량을 늘려 보았더니 그 다음부턴 막힘 없이 진행된다!
Ubuntu 20.04버전은 default로 2GB의 swap이 잡혀있다. 이를 늘려보자.
$ sudo swapoff -v /swapfile
fallocate
명령어로 메모리 크기를 조정하고, 권한을 설정한 다음 mkswap
명령어로 swapfile
을 만들고 swapon
으로 활성화 시킨다.$ sudo swapoff -v /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
다시 오류 ㅠ!
-r : system account
-g : 그룹 지정
-s : user 의 로그인 shell
/usr/local/mysql-8.0.28/dir_mysql# groupadd mysql
/usr/local/mysql-8.0.28/dir_mysql# useradd -r -g mysql -s /bin/false mysql
cd /usr/local
cd mysql
mkdir mysql-files
chown : 파일의 소유자를 변경
-R : 하위 디렉토리까지 소유권 할당
chmod : 사용권한을 변경
$ chown -R mysql:mysql /usr/local/mysql
$ chown mysql:mysql mysql-files
$ chmod 750 mysql-files
$ bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
후에 나오는 임시비밀번호는 나중에 입력해야 mysql이 사용 가능하므로 기록해두자!!
$ bin/mysql_safe —user=mysql &
$ ps -ef | grep mysqld
%bin mysql -u root -p
Enter password: 비밀번호 입력
#비밀번호 변경
ALTER USER 'root'@'localhost' IDENTIFIED By '원하는 비밀번호';
exit
#서버 종료
bin/mysqladmin -u root -p shutdown
Enter password: 비밀번호 입력
https://jminie.tistory.com/91?category=1006530#%F-%-F%--%-C%--%C-%A-MySQL
https://yeni-days.tistory.com/7?category=1020921
https://happylulurara.tistory.com/139
https://happylulurara.tistory.com/137 - 디스크 용량
https://r-mango.tistory.com/6?category=900118 -- ㄲ
https://velog.io/@yeonii/LinuxUbuntu20.04-Mysql8.0.25-%EC%88%98%EB%8F%99%EC%84%A4%EC%B9%98 - swap file
https://mrkzet.tistory.com/23 - 우분투 vi 에디터
https://alkhwa-113.tistory.com/entry/Ubuntu-1804-%EC%97%90-MySQL-8021-%EC%88%98%EB%8F%99%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0