본문 바로가기

백엔드

[ubuntu]mysql소스설치하기/컴파일설치/수동설치

MySQL 설치 링크 참조 : https://dev.mysql.com/doc/refman/8.0/en/installing-source-distribution.html

mysql에서 mac은 어떻게 설치하면되는지, 윈도우는 어떻게 설치하면되는지

mysql수동설치는 어떻게 이루어지는지 친히 설명해준다.

 

0. 설치해야되는 패키지(sudo su한 뒤)

 

: apt-get install cmake ,

  apt-get install make,

  gcc 5.3 이상 / C++ 또는 C99 컴파일러 : apt-get install gccg++,

  SSL library : apt-get install libssl-dev

  Boost C++ libraries : apt-get install libboost-all-dev 

  ncurses library : apt-get install libncurses5-dev libncursesw5-dev

  Perl : apt-get install perl

 

이전 게시물인 apache를 설치했을 때 필요한 정보들이 어느 정도는 있음을 확인할 수 있다.

 

만약 무슨 패키지가 설치되어있는지 궁금하다면 아래의 명령어를 쳐주자

 

$ dpkg -l | grep [이름]

 

나는 조금만 확인해보았다.

 

$ 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

 

확인해본 후, 없는 것만 install해주었다.

 

MySQL 다운로드 링크는 여기에서 확인할 수 있다 : https://dev.mysql.com/downloads/mysql/

우리는 수동설치이기 때문에 소스코드를 눌러서 원하는 걸 찾는다.

다운로드파일: dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.22.tar.gz

-> 8.0.22로 했는데 mysql실행하면 segmentation fault(code dump)가 뜬다.

-> 혹시 모르니 8.0.19를 다운로드 받았으면 한다,,,

 

1. 압축파일 다운로드

 

$ cd /usr/local
$ wget dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19.tar.gz
$ tar xvfz mysql-8.0.19.tar.gz

 

 

잘 됨을 확인했다.

 

 

3. 설치(핵심)

 

$ cd mysql-8.0.19
$ 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과정에서 용량 부족이 뜬다....

 

happylulurara.tistory.com/137

 

[VirtualBox]용량부족이면 하드디스크용량조절(용량늘리기 또는 줄이기)

Ubuntu에서 뭘 깔다가 용량 부족이 떴다. 처음부터 용량을 충분히 해놓았다면 상관이 없겠지만 나처럼 10GB정도로만 할당했다면 겪을 수 있을 것이다.. 1. 일단 VBoxManage를 찾는다.(Mac,Window둘다 상관

happylulurara.tistory.com

그래서 몇시간동안 헤매서 용량을 늘려주었다,,,

용량 늘리기는 위의 글에 작성해놓았다.

 

 

용량을 잘 늘려서 make install까지 완료할 수 있었다.

 

4. MySQL DB 초기화

 

(1)그룹 지정

 

$ groupadd mysql
$ useradd -r -g mysql -s /bin/false mysql

 

그룹과 유저를 만들어야 한다.

-r : system account

-g : 그룹 지정

-s: user의 로그인 shell

 

+명령어

groups : 만들어진 그룹 확인

cat /etc/passwd : 유저의 전체목록을 확인

 

(2) 디렉토리 생성

 

$ cd /usr/local/mysql
$ mkdir mysql-files

 

위의 단계를 잘 진행했다면 위의 경로에 mysql디렉토리가 생김을 알 수 있다.

편한 이름의 디렉토리를 만든다

 

(3)권한주기

 

$ chown -R mysql:mysql /usr/local/mysql
$ chown mysql:mysql mysql-files
(해당위치: /usr/local/mysql)
$ chmod 750 mysql-files

 

chown: 파일의 소유자를 변경

-R : 하위 디렉토리까지 소유권 할당

chmod : 사용권한을 변경

 

(4)기본 DB 생성

 

$ bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

 

 

끝나면 이렇게 임시 비밀번호도 나온다.

(8.0.22)root@localhost: tCj47_lvJK3a

->근데 진짜 안 돼서 8.0.19로 다시 했다.

(8.0.19)root@localhost: 3lUu<*?k0%R=

 

5. 서버 시작 및 사용해보기

 

(1) mysql서버 실행 및 확인

 

$ bin/mysqld_safe --user=mysql &
$ ps -ef | grep mysqld

 

서버를 실행하고, 밑의 명령어로 실행이 잘 되는지 확인한다.

 

 

그럼 터미널 하나가 멈춰 있는데,

다른 터미널 창을 띄워서 'ps -ef | grep mysqld'를 사용한다.

잘 구동됨을 확인했다.(빨강색 3개가 잘 나옴)

 

+혹시 'mysqld_safe: 그런 파일이나 디렉터리가 없습니다'가 나온다면,

cd /usr/local/mysql 로 mysql로 간 후에 bin/mysqld_safe --user=mysql & 서버 실행을 하면 된다.

혹시 그래도 안 된다면 cd /usr/local/bin 에서 mysqld_safe가 있는지 확인해보면 된다.

 

$ bin/mysql -u root -p

 

이 명령어를 쳐야 mysql이 잘 구동됨을 확인할 수 있다.

여기서 중요한 건 아까 4(4) 단계에서 각자에게 알려줬던 임시 비밀번호를 쳐야한다.

 

+bin/을 사용하기 싫다면?

 

$ sudo su
$ vi /etc/profile

 

맨 아래로 내려가서

 

export DB_HOME=/usr/local/mysql 
export PATH="$PATH:/usr/local/mysql/bin"

 

이 부분을 추가해준다.

 

$ source /etc/profile 

 

이것까지 했으면, 그냥 'mysql -u root -p'를 해도 잘 된다.

->근데 다시 시작했을 때 bin/mysql -u root -p로 해야 할 때가 있다.

-> 그럼 source /etc/profile 해야 됨을 확인할 수 있었다.

 

 

(2) 비밀번호 할당하기

 

> alter user 'root'@'localhost' identified by '원하는 비밀번호';

 

ctrl+z로 mysql을 종료할 수 있다.

 

 

(3)서버 종료

 

$ bin/mysqladmin -u root -p shutdown

 

 

잘 종료됨을 확인할 수 있고,

이 과정에서 비밀번호를 확인해보면 될 듯 하다.

 

6. MySQL 서비스 등록

 

서비스를 등록하면 서버가 실행되었을 때, mysql 이 자동으로 실행된다.

 

$ sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
$ sudo vi /etc/init.d/mysqld

 

좀 내리면 basedir과 datadir을 작성할 수 있는 곳이 있다.

 

 

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

 

mysqld를 등록한다.(다 하면 esc누르고 :wq치고 엔터 누르면 끝)

 

$ update-rc.d mysqld defaults
$ reboot 
$ ps -ef | grep mysqld

 

리부트로 다시 시작한 뒤 보면 서버시작 안 해도 이렇게 서버 시작이 되어있음을 확인할 수 있다.

 

 

7. 환경설정(참고)

 

환경설정을 통해 옵션을 정해줄 수 있다.

 

$ sudo su
$ vi /etc/my.cnf

 

my.cnf파일을 만들어주고

 

port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
tmpdir = /tmp

 

원하는 포트번호, address를 추가해준다.

나는 일단은 안 했는데, 나중에 필요하면 할 듯 하다.

 

+mysql

$ service mysql start
$ service mysql stop
$ service mysql restart //서버를 중지했다가 다시 시작하는거
$ service mysql status //서버 상태 확인. 나가려면 q 누르기

 

출처

:salix97.tistory.com/141?category=837576

 

Ubuntu 18.04 + Apache 2.4.41 + Mysql 8.0.19 수동설치하기

Ubuntu 18.04 OS 위에 Apache 2.4.41 컴파일 설치를 완료했다. PHP 를 설치하기 전에 Mysql 데이터베이스 를 설치하려고 한다. 자세한 내용은 표준 소스 배포를 사용하여 MySQL 설치 링크 참조 : https://dev.mys..

salix97.tistory.com

:hs5555.tistory.com/39?category=912271

 

Ubuntu 18.04 + Mysql 8.0.19 수동설치하기

Ubuntu 18.04 OS 위에 Apache 2.4.43 컴파일 설치를 완료했다. PHP 를 설치하기 전에 Mysql 데이터베이스 를 설치하려고 한다. *** 툴들이 이미 설치되어있는지는 아래의 명령어로 확인해준다. (apt-get 으로

hs5555.tistory.com