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 gcc 와 g++,
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과정에서 용량 부족이 뜬다....
[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 |
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
'백엔드' 카테고리의 다른 글
[AWS]ec2에 nginx, mysql, php 설치 (0) | 2021.01.09 |
---|---|
[ubuntu]apache컴파일설치/소스설치하기/수동설치 (0) | 2021.01.08 |
[mac]virtualbox로 ubuntu 20.04설치 (0) | 2021.01.04 |
[virtual machine]Ubuntu 붙여넣기가 안 될 때 (0) | 2020.12.31 |
[python]dlib 오류 해결(macOS) (0) | 2020.10.13 |